2011-11-29 99 views
1

我想执行查询查询MongoDB以检查特定条目是否在数据库中。但它调用了一个异步的回调函数。我怎样才能得到结果?使用Node.js和MongoDB的同步数据库访问

在这我没有得到实际结果同步。

+0

你能发布的示例代码?你是直接使用node.js MongoDB驱动程序吗?或者你正在使用类似Mongoose的东西? –

回答

4

如果你使用Node.js,你应该以异步的方式来完成它。

例子:

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

我使用相同的方式,如:function authenticateUser(msg){0} {0} {0} var result = true; db.open(function(error,client){ if(error)throw error; var collection = new mongodb.Collection(client,'users'); collection.find({'key':msg})。指定者(函数(ERR,文档){ log.info(docs.length);! \t如果(docs.length = 1) \t结果= FALSE; }); }); 返回结果; }在这种情况下,当我调用此身份验证方法时,我没有收到结果值。因为我们不知道什么时候会发起回调。 – Shilpi

+1

发布代码的正确位置应在原始问题中,而不是在评论部分。如果有很多代码可以使用https://gist.github.com/。 –