我的节点服务器上有这个请求处理程序。它有三个 MongoDB 查询,我希望在发送响应之前返回所有结果。
api.get('/getStats/:productID', (req,res)=>{
let data = {};
let dailySales = [];
let avgProduct = "";
let customers = [];
Sales.find({productID: productID}).then(
sales => {
dailySales = sales;
}
);
Products.find({}).then(
products => {
// Calculate Avg product here
avgProduct = result;
}
);
Customers.find({}).then(
customers => {
customers = customers;
}
);
data = {
dailySales,
avgProduct,
customers
};
res.json(data);
});
但是运行这个返回
data: {
dailySales: [],
avgProduct: "",
customers: []
}
即 Mongo 响应在数据运行之前返回。请问我该如何解决。谢谢你
您可以尝试使用Promise.all
可以将 MongoDB 查询作为参数传递给它的位置,当所有查询返回数组中的结果时,承诺将得到解决
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句