我对下面的代码有一个问题。当命中错误时,将命中if语句并调用res.send。但是,代码随后继续执行下面的res.json调用。这会导致报头错误。
使用else语句是唯一正确的方法吗?我假设调用res.send会中断函数。
exports.new = function (req, res) {
let team = new Team();
team.name = req.body.name;
team.description = req.body.description;
team.members = [];
// save the team and check for errors
team.save(function (err) {
if (err) {
res.status(400).send(err);
}
res.status(200).json({
message: 'Team successfully created',
team: team
});
});
};
我还尝试使用req,res,next作为函数参数,并使用以下方法:
if (err) {
res.status(400);
next(err);
}
res.status(200).json({
message: 'Team successfully created',
team: team
});
虽然这不会抛出错误,但它仍然继续调用最终的res.status.json (结果是200,而不是400 )
https://stackoverflow.com/questions/56416862
复制相似问题