javascript - node.js mongojs findOne 回调返回错误为空

标签 javascript node.js mongodb callback mongojs

目前被这个错误逼到了墙边。

我正在使用 mongodb 的 mongojs 包装器运行 node.js 应用程序。我在默认端口上启动了 mongod,然后运行

var db = require('mongojs').connect('localhost:27017/my_db');
var users = db.collection('users');    
users.findOne({'fb_id' : fbUserMetadata.id}, function(err, user) {
                console.log(err);
                console.log(user);
                debugger;

    });

然而 err 和 user 都是'null'。据我所知,即使没有找到任何数据,err 也应该填充某种数据。

如何让回调函数正常工作?请原谅新手的问题。

最佳答案

findOne 查询没有找到至少一个匹配的文档时,回调的第二个参数(在本例中为 user)设置为 null 。这不是错误,所以 err 也是 null。所以你看到的是预期的 no-match-found 响应。

更新

请注意 findOne在 2.0 驱动程序中已弃用,但其替换也表现出相同的行为:

users.find({'fb_id' : fbUserMetadata.id}).limit(1).next(err, doc) {
    // doc is null if a matching document wasn't found
});

关于javascript - node.js mongojs findOne 回调返回错误为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12031041/

相关文章:

javascript - 如何使用 Office.js 获取单元格的格式

javascript - fs.rename 回调函数未在 Nodejs 文件系统中执行

javascript - 为什么我的 Express.js 后端的 CORS 设置不起作用?

Node.JS、Express 和 MongoDB Atlas::多个集合 ejs

javascript - 如何使用indexOf()来检查数组中的字符串是否部分匹配另一个数组中的字符串?

javascript - 映射数据给出了正确的结果,但最终在 final方法中结果为未定义

javascript - 如何从网址截取网页快照?

node.js - 如何使用batchUpdate在顶部插入一个新行,然后插入5个数据单元格?

javascript - 使用Mongoose关闭连接池

python - Mongodb复制集自动重新连接在nginx + uwsgi上下运行后无法正常工作