devi restituire la tua risposta all'errore una volta che si è verificato un errore, altrimenti la tua funzione continuerà a funzionare ed eseguire il codice seguente anche dopo l'errore.
'/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'
});
});
}
);
perché se si verifica un errore o una convalida non riesce l'API invia la risposta ma non viene restituita, quindi la funzione continua ed esegue tutto il codice sottostante.
Come dovresti sapere che in una richiesta HTTP la risposta può essere inviata solo una volta e quando la funzione invia nuovamente la risposta dopo un errore mostra che non è possibile inviare le intestazioni della risposta dopo che sono state inviate al client.
Spero che sia di aiuto. BUONA FORTUNA :)