2017-08-27 245 views
0

嗨我從mongoDB獲取數據,並嘗試從其他函數插入新數據。出於某種原因,我得到了不確定。 我在做什麼是錯的,我該如何解決它?Javascript函數返回undefined從mongodb函數

router.post("/list", (req, res, next) => { 
const params = req.body; 
var results_data = []; 
Countability.find() 
    .populate("user") 
    .populate("company") 
    .populate("store") 
    .exec(function (err, data) { 
     _.forEach(data, function (value, key) { 
      results_data[key] = { 
       _id: value._id, 
       count: GetCount(10) 
      }; 
     }); 
     res.status(200).json({ status: 1, result: results_data }); 
    }); 

});

const GetCount = (id) => { DataRow.aggregate( [ { "$group": { "_id": "$rowName", "count": { "$sum": 1 } } } ]).exec((err,res) => { var data = Promise.all([res]); data.then(function (res) { return res }) }) }
+3

的[我如何返回從一個異步調用的響應?(可能的複製https://stackoverflow.com/questions/14220321/how- do-i-return-the-an-asynchronous-call) –

+0

謝謝我嘗試這個異步響應它仍然返回undefined –

回答

0

儘管forEach尚未完成,服務器開始發送響應。 你需要確保results_data已經得到了所有數據,然後調用res.status(200).json

+0

嗨res.status(200).json以外forEach –