我是Node,expres等新手。我想在客户端进入联系页面时,在加载页面之前,我想从数据库中获取信息并以JSON格式传输联系页面。
这是我的以下代码:
app.get('/contact', function(req, res){
var array = [];
console.log('start');
db.serialize(function () {
db.each('SELECT * FROM USERS', function (err, row) {
array.push(row);
console.log(array.length + ' ' + JSON.stringify(row));
});
db.close();
console.log('array is');
console.log(array);
res.render('contact', {array});
console.log('stop');
});
});
但是我的日志看起来像:
现在开始从数据库中获取信息。我做错了什么?
答案 0 :(得分:0)
您需要在db.close()之前关闭serialize
块。目前,它似乎在console.log('stop');
已编辑:db.serialize()序列化其块的DB语句,但此处可能未跟踪db.each回调。所以你可以在这里使用某些等待/同步手段。所以也许synchronous-database-queries-with-node-js可能有帮助。