Node.js Mongodb计数问题,对象

Node.js Mongodb计数问题,对象,node.js,mongodb,express,pug,Node.js,Mongodb,Express,Pug,我有一个node.js服务器,它调用一个需要查询Mongodb数据库的函数 exports.zonetotal = function(db) { return function(req, res) { var inZone1 = 2; inZone1 = db.collection('driveby').count(); var items = [ {"zone":"1" , "number":inZone1} ]; { res.json(it

我有一个node.js服务器,它调用一个需要查询Mongodb数据库的函数

exports.zonetotal = function(db) {
  return function(req, res) {
    var inZone1 = 2;
    inZone1 = db.collection('driveby').count();
var items = [
    {"zone":"1" , "number":inZone1}
 ]; 
    {
      res.json(items);
    }
  }
};
当我尝试使用这个函数并在网页上的表格中显示结果时,我只得到一个表示object的结果。如果我只说VarInZone1=2;然后显示数字,因此我不认为这是我试图发送数据的方式的问题,我认为这是查询的问题。任何想法,谢谢。

collection.count()是异步的。您需要提供执行渲染的回调。看见只需在回调中移动格式副本代码,如下所示:

db.collection('driveby').count({zone:1}, function(err, count) {
  console.log(count + "records in db");
  console.log("There are " + count + " records in db");
  var items = [ {"zone":"1" , "number":count} ]; 
  res.json(items);
});

节点MongoDB驱动程序是异步的,因此您需要将回调传递给“count”,并在回调中执行res.json:


您的意思是在console.log中正确记录响应?但是,如果您在已解析的对象上使用JSON.stringify,您认为实际响应是什么呢?我将如何在回调中传递回调?