使用Node.js和MongoDB进行同步数据库访问

使用Node.js和MongoDB进行同步数据库访问,mongodb,node.js,Mongodb,Node.js,我想对MongoDB执行一个查找查询,以检查特定条目是否在DB中。但它调用的回调函数是异步的。我怎样才能得到结果 在这种情况下,我不会同步获得实际结果。如果您使用的是Node.js,则应该以异步方式进行 例如: db_call(query, function (err, result) { if (err) { throw new Error('db_error'); return; } console.log(result); // do your stuff here }); 如果

我想对MongoDB执行一个查找查询,以检查特定条目是否在DB中。但它调用的回调函数是异步的。我怎样才能得到结果


在这种情况下,我不会同步获得实际结果。

如果您使用的是Node.js,则应该以异步方式进行

例如:

db_call(query, function (err, result) {
  if (err) { throw new Error('db_error'); return; }
  console.log(result); // do your stuff here
});

如果您使用的是Node.js,那么应该采用异步方式

例如:

db_call(query, function (err, result) {
  if (err) { throw new Error('db_error'); return; }
  console.log(result); // do your stuff here
});

我使用相同的方法,比如:function authenticateUser(msg){var result=true;db.open(function(error,client){if(error)throw error;var collection=new mongodb.collection(client,'users');collection.find({'key':msg}).toArray(function(err,docs){log.info(docs.length);if(docs.length!=1)result=false;});});return result;}在这种情况下,调用此身份验证方法时没有得到结果值。因为我们不知道何时会触发回调。发布代码的正确位置应该在原始问题中,而不是注释部分。如果有很多代码可以使用。我使用相同的方法,比如:function authenticateUser(msg){var result=true;db.open(function(error,client){If(error)throw error;var collection=new mongodb.collection(client,'users');collection.find({'key':msg})。toArray(function(err,docs){log.info(docs.length);如果(docs.length!=1)结果=false;});});返回结果;}在这种情况下,当我调用此身份验证方法时,我没有得到结果值。因为我们不知道何时会触发回调。发布代码的正确位置应该在原始问题中,而不是在注释部分。如果有很多代码可以使用,您能发布示例代码吗?您是直接使用node.js MongoDB驱动程序还是使用你在使用类似Mongoose的东西吗?你能发布示例代码吗?你是直接使用node.js MongoDB驱动程序还是使用类似Mongoose的东西?