我是node.js的新手。我使用lodash forEach进行保存操作。现在问题是res.send()正在多次执行,这会抛出错误,就像标题在发送后无法设置一样。
我听说过PromiseAll,但我不知道如何实现它。我阅读文档,但我认为我做错了。如果有人可以提供帮助,那将非常有帮助。
_.forEach(req.body ,function(value){
gridObj.save(value)
.then((results) => {
var data = {
status: 200,
message: 'Record save successfully ',
data: results,
};
console.log(`data saved successfully ${JSON.stringify(results)}`);
res.send(data);
}).catch((error) => {
console.log(`error in save ${error}`);
res.send(error);
})
});
我希望数据将在mongoDb中逐个存储。先感谢您
如果你使用Object.entries
而不是_.forEach
和.map
到一组promises,你可以使用Promise.all
:
Promise.all(
Object.entries(req.body).map(value => gridObj.save(value))
).then(/*..*/).catch(/*...*/)