MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Błąd [ERR_HTTP_HEADERS_SENT] Nie można ustawić nagłówków po ich wysłaniu do klienta

musisz zwrócić odpowiedź na błąd po wystąpieniu błędu, w przeciwnym razie funkcja będzie nadal działać i wykonywać poniższy kod nawet po wystąpieniu błędu.

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

ponieważ jeśli wystąpi błąd lub jakakolwiek walidacja nie powiedzie się, API wysyła odpowiedź, ale nie jest zwracana, więc funkcja kontynuuje działanie i wykonuje cały pozostały kod poniżej.

Jak powinieneś wiedzieć, w żądaniu HTTP odpowiedź może być wysłana tylko raz, a gdy funkcja ponownie wyśle ​​odpowiedź po błędzie, pokazuje, że nie możesz wysłać nagłówków odpowiedzi po ich wysłaniu do klienta.

Mam nadzieję że to pomoże. POWODZENIA :)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak przechowywać posortowaną tablicę z powrotem do MongoDB?

  2. Jak uruchomić powłokę mongodb w kontenerze docker?

  3. mongodb 3.4.3 Odmowa uprawnień błąd 267 wiredtiger_kv_engine.cpp z ubuntu 16

  4. MongoDB:WriteResult.getN() zawsze zwraca 0?

  5. Usługa MongoDB nie uruchamia się po wstępnej konfiguracji