3

アプリにnode-postgres ( pgNPM 上)を使用していますが、問題があったため、Wikiのに戻ることにしました。

https://github.com/brianc/node-postgres/wiki/Example

この例を実行すると、 http要求によって2 つのレコードが Postgres ("visit") テーブルに挿入されます。これは望ましい動作ですか...?

サンプル コードを Heroku に公開しました: https://node-postgres-example.herokuapp.com
(注: Google Chromeを使用してアクセスしてください)

注: Wiki のコードに 3 つの変更を加えて、server.jsHeroku で実行できるようにしました。これは GitHub にあります: https://github.com/dwyl/postgres-connection-pool-test

( server.js に加えた変更は、(1)visitテーブルがまだ存在しない場合はテーブルを作成するため、(2) postgres 接続文字列を取得するため、process.env.DATABSE_URL(3) Heroku でリッスンするprocess.env.PORTためだけです。残りのすべてのコードは Wiki の例のとおりです)

4

2 に答える 2

0

クライアント (ブラウザ) は 2 つのリクエストを行っているようです。コマンドラインから使用する場合curl、この例は宣伝どおりに機能し、継続的な訪問カウンターを返します。

→ curl -i https://node-postgres-example.herokuapp.com/
HTTP/1.1 200 OK
Server: Cowboy
Connection: keep-alive
Content-Type: text/plain
Date: Sun, 13 Mar 2016 14:19:42 GMT
Transfer-Encoding: chunked
Via: 1.1 vegur

You are visitor number 40

→ curl -i https://node-postgres-example.herokuapp.com/
HTTP/1.1 200 OK
Server: Cowboy
Connection: keep-alive
Content-Type: text/plain
Date: Sun, 13 Mar 2016 14:20:00 GMT
Transfer-Encoding: chunked
Via: 1.1 vegur

You are visitor number 41
于 2016-03-13T14:25:23.380 に答える
-1

2 番目のリクエストはほぼ確実にブラウザのリクエスト/favicon.icoであり、HTML ドキュメントを含む一部で明示的な参照なしにブラウザが暗黙的に行うリクエストであるという点で、Web 技術スタックの異常です。おそらくexpress-faviconを使用して favicon リクエストを個別に処理すると、問題が解決し、ページの読み込みごとに 1 回の訪問のみがログに記録されます。

于 2016-03-13T16:06:49.417 に答える