5

目前正被这个错误逼上绝路。

我正在使用 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 也应该填充某种数据。

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

4

1 回答 1

10

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

更新

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

users.find({'fb_id' : fbUserMetadata.id}).limit(1).next(err, doc) {
    // doc is null if a matching document wasn't found
});
于 2012-08-20T00:33:19.557 回答