node.js mongojs findOne callback returning error as null

烂漫一生 提交于 2019-11-28 04:25:08

问题


Presently being driven up the wall by this error.

I am running a node.js app with the mongojs wrapper for mongodb. I Started mongod on the default port, then ran

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;

    });

however err and user are both 'null'. To my knowledge, err should be populated with some kind of data even if it doesn't find anything.

How do I get the callback function to work properly? Pardon the newbie question.


回答1:


When the findOne query doesn't find at least one matching document, the second parameter of the callback (in this case user) is set to null. It's not an error, so err is also null. So what you're seeing is the expected no-match-found response.

Update

Note that findOne has been deprecated in the 2.0 driver, but its replacement also exhibits this same behavior:

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


来源:https://stackoverflow.com/questions/12031041/node-js-mongojs-findone-callback-returning-error-as-null

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!