MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Fehler [ERR_HTTP_HEADERS_SENT] Header können nicht gesetzt werden, nachdem sie an den Client gesendet wurden

Sie müssen Ihre Fehlerantwort zurückgeben, sobald ein Fehler aufgetreten ist, andernfalls läuft Ihre Funktion weiter und führt den folgenden Code auch nach dem Fehler aus.

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

denn wenn ein Fehler auftritt oder eine Validierung fehlschlägt, sendet die API die Antwort, wird aber nicht zurückgegeben, sodass die Funktion weiterläuft und den gesamten anderen Code darunter ausführt.

Wie Sie wissen sollten, kann die Antwort auf eine HTTP-Anfrage nur einmal gesendet werden, und wenn die Funktion die Antwort nach einem Fehler erneut sendet, zeigt sie Ihnen, dass Antwortheader nicht gesendet werden können, nachdem sie an den Client gesendet wurden.

Hoffe das hilft. VIEL GLÜCK :)