node.js - mongoose findone 使用 q 模型将请求的 id 传递给回调

标签 node.js mongodb mongoose q

我正在使用 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 和用户名都是 null。

我想找到一种从回调选项访问过滤器查询的方法,我可以这样做吗?如何以可以在回调中使用用户名的方式传递用户名?

最佳答案

也许您可以将数据存储在变量中并在回调中访问它?

var findUser = function (userToFind) {
    return q.when(administratorModel
            .findOne({'username': userToFind})
            .exec()
            .then(function (username) {
                if (!username) {
                    throw new Error('Not found ' + userToFind);
                }
            }));
}

关于node.js - mongoose findone 使用 q 模型将请求的 id 传递给回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33415415/

相关文章:

html - 在 mongodb 中更新深度嵌套的数组

javascript - Iron Router 将参数添加到字符串以及添加查询

node.js - 无效的 webpack 配置对象

javascript - grunt connect 退出而不是提供本地文件

mysql - 实时统计 : MySQL(/Drizzle) or MongoDB?

mongodb - 过滤$lookup结果

java - 将 dbcursor 对象转换为 json

node.js - 在 mongoose 中,model.save 是增量的原子还是我应该始终使用 $inc?

node.js - Mongo查找转换为不同的对象

node.js - 如何根据现有的 Mongoose 查询检查单个文档?