我正在向 node.js 0.6.12 迁移,现在在使用 pg 模块(版本 0.6.14)时收到以下错误消息:
Error: This socket is closed.
at Socket._write (net.js:453:28)
at Socket.write (net.js:446:15)
at [object Object]._send (/home/luc/node_modules/pg/lib/connection.js:102:24)
at [object Object].flush (/home/luc/node_modules/pg/lib/connection.js:192:8)
at [object Object].getRows (/home/luc/node_modules/pg/lib/query.js:112:14)
at [object Object].prepare (/home/luc/node_modules/pg/lib/query.js:150:8)
at [object Object].submit (/home/luc/node_modules/pg/lib/query.js:97:10)
at [object Object]._pulseQueryQueue (/home/luc/node_modules/pg/lib/client.js:166:24)
at [object Object].query (/home/luc/node_modules/pg/lib/client.js:193:8)
at /home/luc/test/routes/user.js:23:29
我的代码中指示的行是:
var get_obj = client.query("SELECT id FROM users WHERE name = $1", [name]);
这可以在节点 0.4.8 和 gp 0.5.0 上正常工作,但现在我正在测试迁移,现在不再工作了。
我在网上看到了几个类似这样的错误,但没有答案。
更新
这似乎与我处理 postgres 连接的方式有关。今天我在运行应用程序时创建了一个连接。我认为在每个请求上创建一个新连接会更好。在快速中间件中创建连接的最佳解决方案是什么?