MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Erro [ERR_HTTP_HEADERS_SENT] Não é possível definir os cabeçalhos após serem enviados ao cliente


você precisa retornar sua resposta de erro assim que ocorrer um erro ou, caso contrário, sua função continuará executando e executando o código abaixo mesmo após o erro.
  '/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 se ocorrer um erro ou qualquer validação falhar, a API envia a resposta, mas não é retornada, então a função continua e executa todos os outros códigos abaixo dela.

Como você deve saber que em uma solicitação HTTP a resposta só pode ser enviada uma vez e quando a função novamente envia a resposta após um erro ela mostra que não é possível enviar cabeçalhos de resposta depois que eles são enviados ao cliente.

Espero que isto ajude. BOA SORTE :)