当前位置: 首页 > 面试题库 >

node.js mongojs findOne回调返回错误为null

秦昂然
2023-03-14
问题内容

目前正被此错误推高。

我正在使用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。因此,您所看到的是预期的找不到匹配项的响应。

更新资料

请注意,findOne2.0驱动程序已弃用该功能,但其替换也表现出以下相同行为:

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


 类似资料:
  • 基类控制器里有error方法,用于api的错误消息返回输出 /** * 操作错误跳转的快捷方法 * @access protected * @param mixed $msg 提示信息,若要指定错误码,可以传数组,格式为['code'=>您的错误码,'msg'=>'您的错误消息'] * @param mixed $data 返回的数据 * @par

  • 我想一次更新文档的所有选项卡。文档的信封是从一个模板创建的,该模板已经定义了收件人和选项卡,我使用以下负载调用这个endpoint来更新选项卡:

  • 这是我第一次使用公钥,我收到回拨错误。我一直在试图找到一个解决方案,我不确定它是否与设置或我正在使用的东西。 我的设置是2个虚拟机(Mint Linux托管服务器,Mac OS X托管客户端)都安装在桥接适配器上,都是运行Ubuntu 20.04的虚拟机,都是新安装的这些都是用于设置公钥的说明(我已经非常熟练地执行了这一操作,我已经做了好几次) https://www.linuxbabe.com/

  • 问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:

  • 我正在尝试进行rest api调用,但一直收到。从日志中可以看出,我的POJO的字段之一似乎存在问题。 我的POJO: 在我的中 运行上述代码时,我得到以下错误:

  • 我是JS的学生。我有一段代码返回了一个错误。 这是返回的语法错误。你们能解释一下我做错了什么吗?