MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Erreur [ERR_HTTP_HEADERS_SENT] Impossible de définir les en-têtes après leur envoi au client

vous devez renvoyer votre réponse d'erreur une fois qu'une erreur s'est produite, sinon votre fonction continuera à fonctionner et à exécuter le code ci-dessous même après l'erreur.

  '/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'
  });
});
}
);

car si une erreur se produit ou si une validation échoue, l'API envoie la réponse mais n'est pas renvoyée, de sorte que la fonction continue et exécute tout le code en dessous.

Comme vous devez savoir que dans une requête HTTP, la réponse ne peut être envoyée qu'une seule fois et lorsque la fonction envoie à nouveau la réponse après une erreur, elle vous indique qu'elle ne peut pas envoyer les en-têtes de réponse après leur envoi au client.

J'espère que cela t'aides. BONNE CHANCE :)