if (user) {
if (userId != user._id) {
res.json({success: false, msg: 'Invalid request, wrong secret key'});
}
User.comparePassword(password, user.password, function (err, result) {
if (result === true) {
res.json({success: true, msg: 'ok'});
} else {
res.json({success: false, msg: 'Error, Incorrect password!'});
}
});
} else {
res.json({ success: false, msg: 'Error, account not exist!'});
}
我认为第一个res.json会停止以下res.json但是在这种情况下我似乎无法使用第一个res.json,我不知道为什么。
答案 0 :(得分:0)
res.json()
发送响应,但不会阻止其余代码运行。
因此,您有一些尝试发送res.json()
两次的代码路径,这将导致您看到的错误消息。您需要使用适当的if/then
块或插入适当的return
语句来阻止这种情况。
我建议:
if (user) {
if (userId != user._id) {
res.json({success: false, msg: 'Invalid request, wrong secret key'});
return;
}
User.comparePassword(password, user.password, function (err, result) {
if (result === true) {
res.json({success: true, msg: 'ok'});
} else {
res.json({success: false, msg: 'Error, Incorrect password!'});
}
});
} else {
res.json({ success: false, msg: 'Error, account not exist!'});
}
但是,您也可以通过向第一个else
添加if
并将其余代码放入其中来解决此问题。