2015-10-29 44 views
1

我現在用的是貓鼬查詢findone這樣的回調ID:貓鼬findone請求傳遞到運用Q模型

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都是空的。

我想找到一種方法來從回調選項訪問過濾器查詢,我可以這樣做嗎?我怎樣才能傳遞給用戶名的方式,我可以在回調中使用它?

回答

0

也許你可以將你的數據存儲在變量中並在回調中訪問它?

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

但我在異步工作,另一個線程可以更改這個變量 – Lehem

+0

請提供一些代碼請 –