sql >> Databáze >  >> NoSQL >> MongoDB

Chyba [ERR_HTTP_HEADERS_SENT] Nelze nastavit záhlaví po jejich odeslání klientovi

jakmile dojde k chybě, musíte vrátit odpověď na chybu, jinak bude vaše funkce nadále běžet a provádět níže uvedený kód i po chybě.

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

protože pokud dojde k chybě nebo selže jakékoli ověření, API odešle odpověď, ale není vráceno, takže funkce pokračuje a spustí veškerý další kód pod ní.

Měli byste vědět, že v požadavku HTTP může být odpověď odeslána pouze jednou a když funkce znovu odešle odpověď po chybě, ukáže vám, že nemůže odeslat hlavičky odpovědi poté, co jsou odeslány klientovi.

Snad to pomůže. HODNĚ ŠTĚSTÍ :)



  1. Spring-data-mongodb se připojuje k více databázím v jedné instanci Mongo

  2. Jak převést BSON Timestamp z Mongo changestream na datum?

  3. Chyba při vkládání dokumentu do MongoDB přes Node.js

  4. Při vytváření prvního uživatele správce na clusteru mongdb se při chybovém hlášení nepodařilo přidat uživatele:správce nemá oprávnění provést příkaz