gpt4 book ai didi

javascript - nodejs 快速响应追加到列表中

转载 作者:行者123 更新时间:2023-11-30 15:20:24 25 4
gpt4 key购买 nike

我在一个路由中有多个 res.send,如何将它们全部附加到一个并在最后发送累积列表?我更喜欢采用以下形式:

{
"writer": {success message},
"archive": {success message},
...
}

还有一个类似上面的列表错误。这是代码:

router.post('/some/route', function (req, res) {
if (req.isLoggedIn()) {
return res.status(403).json({});
}
MyModel.findById(req.user._id,function (err, data) {
if(err || data.rights !== 'super'){
return res.status(403).json({});
}
if(req.body.writer){
Books.update(
{ writer : req.body.id},
{ $set : { writer : req.body.writer} },
function (err) {
if(err){
res.status(500).send(err);
}
else{
res.status(200).send('updated successfully.');
}
}
);
}else{
Books.remove({writer: req.body.id}, function(err){
if (err){ return console.log(err)}
});
}

MetaInfo.findOneAndRemove({_id: req.body.id}, function (err, data) {
console.log(err);
});
Archive.findOne({_id: req.body.id},function (err, data) {

smtpTransporter.sendMail({...}, function (error, response) {
if (error) {
console.log(error);
} else {
console.log("Mail sent");
}
smtpTransporter.close();
});

data.remove();
if (err) {
console.log(err);
return res.status(200).json({
success: false,
message: 'server error',
err: err
});
}
res.status(200).json({
success: true
});
})
});
});

最佳答案

我假设您的问题是对数据库的异步调用。

所以最好选择一个您选择的库(例如 async )并执行您的异步处理,在回调中最后发送您的结果。

您的结果可能如下所示:

async.parallel([
function(callback) { ... },
function(callback) { ... }
], function(err, results) {
// send your result here
});

请注意,如果您使用的是 .parallel,那么如果其中一个 promise 失败,将立即调用最终回调。查看docu

关于javascript - nodejs 快速响应追加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43831153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com