javascript - 为什么我的 Mongo 查询不起作用?

标签 javascript node.js mongodb

我想在函数中从 mongodb 返回一些数据。函数体如下所示:

var name = '';
var ret = this.collection.findOne({"socket_id" : socket_id}).on('success', function(doc) {
    name = doc.name;
    console.log("name inside mongo callback is not empty" + name);
});
console.log("name here is empty" + name);

如果我在控制台中记录数据,回调会正确显示数据,但如果我返回表单回调,我似乎无法从调用函数的位置捕获它。我怀疑这与 Node.js 的异步性有关,但我该如何解决这个问题呢?任何帮助将不胜感激

最佳答案

事实证明,这正是因为我试图获得对异步函数的同步响应。如果您偶然发现这个问题,我建议您引用这个问题的答案:

How to return value from an asynchronous callback function?

它包含您需要的有关如何执行此类操作的所有答案

关于javascript - 为什么我的 Mongo 查询不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33170219/

相关文章:

node.js - 将 "require(' events').eventEmitter"更改为 "require ('events' )"?

mongodb - Mongo聚合框架无法按两个字段排序?

javascript - 如何将mongodb响应数组从javascript对象转换为JSON字符串

javascript - 如何使用 CSS 或 JavaScript 使内部元素在固定的外部元素中滚动?

php - 查看间距/换行符

node.js - Mongoose insertMany 限制

c++ - 如何将 bsoncxx::document::element 写入控制台

javascript - MEANJS:检查数据库中的 url 并路由到动态 Angular 状态

javascript - 将 html5 <script async> 与非异步 <script> 标签混合

node.js - 如何使用 NodeJs 缩小 Docker 镜像的大小