1 回答

TA貢獻1821條經驗 獲得超6個贊
這只意味著您發送并回復了兩次。您第一次將其寄回此處時:res
if(mongoError) {
return res.status(400).json({
errorCode: 400,
errorCodeMessage: 'Bad Request',
errorMessage: mongoError.message
});
}
您發回了響應,但函數仍在繼續工作,這意味著該函數將一直運行到此處:
if(mongoResponse) {
res.status(200).json(mongoResponse);
} else {
return res.status(404).json({
errorCode: 404,
errorCodeMessage: 'Not Found',
errorMessage: `Unable to find example with id: ${exampleId}.`
});
}
這里發生第二個響應,這里你得到錯誤。
我會這樣重寫代碼:
您不是返回響應,而是返回一個表示存在錯誤,否則:truefalse
const foundMongoError = (mongoError, res) => {
if(mongoError) {
res.status(400).json({
errorCode: 400,
errorCodeMessage: 'Bad Request',
errorMessage: mongoError.message
});
return true;
}
return false;
};
module.exports = {
foundMongoError
};
然后你可以這樣寫:
if(foundMongoError(mongoError, res)) return;
將停止函數以執行其余代碼return
添加回答
舉報