2017-02-16 60 views
0

我使用mongodb作爲我的後端,它在index_entity中有大約400個文檔。當有數據時,Mongoose顯示0個結果

我用我的貓鼬的NodeJS和如下查詢它,

getCountries : function(event,context,callback){    
       dbHelper.query(mongoose.model('_entity'), {},function(error,data){ 
       console.log(data); 
       callback(data);  
      }); 

這裏是dbHelper。

query : function(model, conditon,options) { 
     return new Promise(function(resolve, reject) { 
      options = options||{};    
      model.find(conditon, {}, options, function(error, data) { 
       if (error)     
        reject(error);      
       resolve(data); 
      }) 
     }) 
    } 

是否有任何問題的代碼?當我在mongo客戶端上運行查詢時,它顯示結果。

enter image description here

回答

1
在你查詢你返回一個承諾

,所以你需要使用。然後方法,而不是回調。

getCountries : function(event,context,callback){    
      dbHelper.query(mongoose.model('_entity'), {}).then(function(data){ 

      }); 
} 

編輯: 如果你使用mongoose4那麼你可以返回與查詢本身像這樣的承諾。

query : function(model, conditon,options) { 
      options = options||{};    
      return model.find(conditon, {}).exec(); 
    } 

你仍然需要保留.then與我以前的迴應。

+0

這是沒有問題的,即使我加了的console.log不打印數據 – Sajeetharan

+0

我更新了我一個更好的方式響應返回承諾 – Garuuk

+0

仍然返回0,不知道該dbhelper裏面爲什麼 – Sajeetharan