【发布时间】:2016-09-19 03:35:16
【问题描述】:
我正在尝试使用带有 pg 包和角度的 nodejs 从 postgres 数据库中获取数据。
当我对数据库进行足够快的调用(两次或多次)时,每次连续响应都会得到混乱的结果(有些是两倍、三倍……)。
angular 的调用是最简单的
$http({
url: "/db?table=appointments&type=perDoctor",
method: "POST"
}).then(...);
和一个节点端(通过护照和快递)
var pg = require('pg');
var config = {
host: '***',
user: '**',
password: '**',
database: '**',
ssl: true
};
var conString = process.env.DATABASE_URL || config;
var client = new pg.Client(conString);
client.connect();
appointments = [];
var queryString = "SELECT * FROM appointments;"
var query = client.query(queryString);
query.on("row", function(row) {
appointments.push(row);
});
query.on("end", function() {
client.end();
res.send(appointments);
});
结果如下图(db记录实际上是502): enter image description here
【问题讨论】:
-
我认为我们需要在服务器端查看更多上下文,包括整个请求处理程序。一种猜测是您没有正确声明
appointments变量,因此它可能会在请求之间共享。 -
但是,但是,但是……当然是!我在处理程序之外声明了变量。谢谢
-
那么,这是问题所在吗?
-
是的,实际上我在其他处理程序上使用了“var约会=[]”,正如您指出的那样,我在这个特定的处理程序上使用了普通的“约会=[]”,从而使变量成为全局变量。
标签: node.js postgresql express