在node/express中,我将在成功请求后立即执行的代码放在哪里。我想在通话后发一封电子邮件。
exports.postRequests = async (req, res) => {
try {
const {.... } = req.body;
const post = await requests.save();
return res.status(200)
.json({
status: 'ok',
data: {
complete: post.complete,
id: post._id,
},
});
} catch (err) {
return errorResponse(res, 'Error occurred');
}
};
//.then(emailSuccessMessage)....发布于 2019-10-08 09:52:17
您可以使用process.nextTick或setTimeout
exports.postRequests = async (req, res) => {
try {
const {.... } = req.body;
const post = await requests.save();
// already success here
process.nextTick(() => {
// emailSuccessMessage
});
return res.status(200)
.json({
status: 'ok',
data: {
complete: post.complete,
id: post._id,
},
});
} catch (err) {
return errorResponse(res, 'Error occurred');
}
};发布于 2019-10-08 14:10:22
尝试侦听请求对象事件( end事件)
exports.postRequests Middleware = (req,res,nx)=>{
req.on('end',postRequests)
nx()
}
exports.postRequests = async (req, res) => {
const {.... } = req.body;
const post = await requests.save();
return res
.status(200)
.json({
status: 'ok',
data: {
complete: post.complete,
id: post._id
}
});
};https://stackoverflow.com/questions/58279174
复制相似问题