我正在使用mongoose查询findone,如下所示:
var findUser = function(){
var deferred = q.defer();
administratorModel.findOne({'username': 'aa'}, function(err, username){
if(err) console.log(err);
if(username){
deferred.resolve(username);
}else{
deferred.reject('username' + query.username)
}
});
return deffered.promise;
}
如果在数据库中找不到用户名,findone的查询将返回null,但我想知道查询找不到哪个客户端。但我一无所获,因为err和username都为null。
我想找到一种从回调选项访问过滤器查询的方法,我能做到吗?如何以在回调中使用用户名的方式传递给用户名?
您可以将数据存储在变量中并在回调中访问它吗?
var findUser = function (userToFind) {
return q.when(administratorModel
.findOne({'username': userToFind})
.exec()
.then(function (username) {
if (!username) {
throw new Error('Not found ' + userToFind);
}
}));
}