【问题标题】:node.js mongojs findOne callback returning error as nullnode.js mongojs findOne 回调返回错误为空
【发布时间】:2012-08-20 00:23:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript node.js mongodb callback mongojs


    【解决方案1】:

    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
    });
    

    【讨论】:

    • 如此简单,但在 API 文档中找不到。
    猜你喜欢
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    相关资源
    最近更新 更多