数据库连接完成结束

时间:2018-01-21 08:16:52

标签: node.js sqlite express

我是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');
  });
});

但是我的日志看起来像:

  • 开始
  • 我的数组是
  • []
  • 停止

现在开始从数据库中获取信息。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要在db.close()之前关闭serialize块。目前,它似乎在console.log('stop');

之后关闭

已编辑:db.serialize()序列化其块的DB语句,但此处可能未跟踪db.each回调。所以你可以在这里使用某些等待/同步手段。所以也许synchronous-database-queries-with-node-js可能有帮助。