为什么 Node.js Postgres Wiki 示例在每个 http 请求中插入多条记录?

Why does Node.js Postgres Wiki example insert multiple records per http request?

我们在 NPM) 上使用 node-postgres (pg 作为我们的应用程序,但遇到了问题,因此我们决定返回到 示例 维基:

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

当我们运行例子时,每个http请求插入两个 记录到 Postgres ("visit") table。 这是期望的行为吗...?

我们将示例代码发布到 Heroku:https://node-postgres-example.herokuapp.com
(注:访问使用GoogleChrome)

注意:我们对 Wiki 中的 server.js 代码进行了 3 处更改,使其在 Heroku 上 运行 这是在 GitHub 上:https://github.com/dwyl/postgres-connection-pool-test

(我们对 server.js 所做的更改纯粹是 (1) 创建 visit table(如果它尚不存在),(2)从 process.env.DATABSE_URL 和 (3) 获取 postgres 连接字符串以在 Heroku 上监听 process.env.PORT。所有其余代码均按照 Wiki 示例)

您的客户端(浏览器)似乎发出了两个请求。如果您从命令行使用 curl,该示例会像宣传的那样工作并且 returns 连续访问计数器:

→ 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

第二个请求几乎可以肯定是浏览器请求 /favicon.ico,这是 Web 技术堆栈中的一个异常,因为它是浏览器隐式发出的请求,在某些包含 HTML 的文档中没有明确引用.如果您单独处理网站图标请求,也许使用 express-favicon,您将解决您的问题并且每次页面加载仅记录 1 次访问。