我将node.js中的应用程序连接到postgresql并获取结果并将其转换为Json。但是当我向node.js路由发出请求时,我将结果添加到变量中,在该变量中存储数据库结果,而不是每次都加载。将node.js连接到postgresql时结果不正确
的代码片段是这样的:
function getDBData(request,response,next){
console.log(request.params);
var client = new pg.Client(connStr);
// Connecting to the client
client.connect(function(err) {
if (err) {
return console.error('could not connect to postgresq',err);
}
console.log('CONNECTION ESTABLISHED');
})
// Querying the DB
var query = client.query('SELECT * FROM city');
var i = 0;
query.on('row', function(row) {
if(i == 0){
rowData = rowData + row;
i++;
}else{
rowData = rowData +","+ row;
i++;
}
});
swiftarr= JSON.stringify(rowData);
//client.end();
response.send(200,swiftarr).end();
}
app.get('/mycity',getDBData)
在swiftarr可变
结果得到所附,而不是与每一个请求得到替换。
我在浏览器中得到的结果是一样 “[目标对象],[目标对象] [对象对象],[目标对象]”
每个请求,我应该得到这样的事情 相反 [目标对象],[目标对象]
因为在我的分贝我只有两个记录。 例如。 如果我发出第一个请求,下一次有两条记录进入结果变量 ,而不是被替换,它将被追加并将四条记录写入结果变量。
我不知道我是否做出任何逻辑错误。
可能重复[如何返回从Ajax调用的响应?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-呼叫) – 2014-11-25 11:45:38
这与ajax调用无关。我能够获得响应,但我的响应结果正在追加,而不是被每个请求取代...... @ BenFortune – anand 2014-11-25 11:49:54
由于您的请求的性质,它是相关的。这是一个异步请求,您试图在返回结果之前返回结果。 – 2014-11-25 11:54:07