我想得到一个建议。在我的 nodeJS/Mongo Stack 中,我的一个 Rest API 需要时间才能返回,因为它在返回结果之前正在执行操作链。但是对于一些操作,我不关心相同的返回状态。所以我的问题是,REST API 是否可以在完成所有操作之前返回结果,而不是只等待主要操作。
我的原始代码是这样的。
router.post('/updateStatus’, validateToken, function(req, res) {
if (req.body.hasOwnProperty(‘param1’) && req.body.hasOwnProperty(‘param2’) ) {
statusCollection.updateStatus(req.body.param1, req.body.param2,function (err, out) {
reportCollection.updateReport(req.body.param1, req.body.param2,function (err, out) {
var result = {status:200, data:out};
res.json(result);
} );
} );
} else {
res.status(422);
res.json({error:'Missing required params'});
}
});
我想更改为:
router.post('/updateStatus’, validateToken, function(req, res) {
if (req.body.hasOwnProperty(‘param1’) && req.body.hasOwnProperty(‘param2’) ) {
statusCollection.updateStatus(req.body.param1, req.body.param2,function (err, out) {
var result = {status:200, data:out};
res.json(result);
//***************Will continue in After returning API ********************
reportCollection.updateReport(req.body.param1, req.body.param2,function (err, out) {} );
} );
} else {
res.status(422);
res.json({error:'Missing required params'});
}
});
即,我将在 statusCollection.updateStatus() 之后返回结果,而不是等到 reportCollection.updateReport()。这个可以吗?