musisz zwrócić odpowiedź na błąd po wystąpieniu błędu, w przeciwnym razie funkcja będzie nadal działać i wykonywać poniższy kod nawet po wystąpieniu błędu.
'/add/grade',
[
check('name', 'grade name is require')
.not()
.isEmpty()
],
auth,
admin,
(req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) return res.status(400).send({ errors: errors.array() });
const grade = new Grade(req.body);
grade.save((err, doc) => {
if (err) return res.status(400).send({ success: false, err });
return res.status(200).send({
success: true,
grade: doc,
msg: 'Grade add successfully'
});
});
}
);
ponieważ jeśli wystąpi błąd lub jakakolwiek walidacja nie powiedzie się, API wysyła odpowiedź, ale nie jest zwracana, więc funkcja kontynuuje działanie i wykonuje cały pozostały kod poniżej.
Jak powinieneś wiedzieć, w żądaniu HTTP odpowiedź może być wysłana tylko raz, a gdy funkcja ponownie wyśle odpowiedź po błędzie, pokazuje, że nie możesz wysłać nagłówków odpowiedzi po ich wysłaniu do klienta.
Mam nadzieję że to pomoże. POWODZENIA :)