mongoose在查找功能中没有提供错误

ben*_*nto 1 javascript mongoose node.js express

在尝试用Mongoose构造一些静态时,我似乎无法在调用find()或findOne()时访问error参数.这是我的静态:

User.statics.authenticate = function(login, password, cb){
    return this.model('User').findOne({
        username: login, 
        password: password
    }, function(err, user){
        console.log("error", err);
        console.log("user", user);
    }).exec(cb);
};
Run Code Online (Sandbox Code Playgroud)

我试着用这样的东西来称它:

exports.session = function(req, res){
    return User.authenticate(req.body.login, req.body.password, function(err, doc){
        console.log('err', err);
        console.log('doc', doc);
    });
};
Run Code Online (Sandbox Code Playgroud)

在任何情况下,无论findOne查询的结果如何,err始终为null.关于这里发生了什么的任何想法?也许我无法绕过所有这些回调......

ben*_*nto 7

显然,一个空的查询结果实际上并不是一个错误,所以即使没有找到结果,'错误'的原因仍然是空的.因此,您需要测试'user'是否为null,然后创建自己的错误.