3

我们正在为我们的应用程序使用node-postgrespg在 NPM 上)但是遇到了问题,所以我们决定回到Wiki 上的示例:

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

当我们运行该示例时,每个 http请求都会将两条记录插入 Postgres(“访问”)表中。这是期望的行为...?

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

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

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

4

2 回答 2

0

您的客户端(浏览器)似乎提出了两个请求。如果您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

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

于 2016-03-13T16:06:49.417 回答