2017-08-27 198 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 –