sql >> Base de Datos >  >> NoSQL >> MongoDB

Error [ERR_HTTP_HEADERS_SENT] No se pueden establecer encabezados después de enviarlos al cliente

debe devolver su respuesta de error una vez que ocurra un error o, de lo contrario, su función seguirá ejecutándose y ejecutando el siguiente código incluso después del error.

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

porque si ocurre un error o falla alguna validación, la API envía la respuesta pero no se devuelve, por lo que la función continúa y ejecuta todos los demás códigos debajo de ella.

Como debe saber, en una solicitud HTTP, la respuesta solo se puede enviar una vez y cuando la función envía nuevamente la respuesta después de un error, le muestra que no puede enviar encabezados de respuesta después de que se envían al cliente.

Espero que esto ayude. BUENA SUERTE :)