对postgres的快速http请求会导致不同的响应

时间:2016-09-18 18:23:33

标签: node.js postgresql express

我正在尝试使用带有pg包和angular的nodejs从postgres数据库中获取数据。

当我对数据库进行足够快速的调用(两次或多次)时,我会为每个连续的响应得到混乱的结果(有些加倍,三倍......)。

来自angular的调用是最简单的

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);
});

和一个节点方(通过护照和快递)

Watch History

,结果如下所示(db记录实际上是502): enter image description here

1 个答案:

答案 0 :(得分:0)

自从它解决了您的问题后,我的评论就成了答案。

看起来您可能需要正确地将appointments变量声明为局部变量,这样就不会在同时处于飞行中的不同请求处理程序之间无意中共享 - 允许一个请求处理程序覆盖来自另一个人的数据。

仅供参考,如果您将代码置于严格模式,那么它会立即将这些错误标记为错误。