Следующая функция маршрутизатора вызывает ошибку после установки res.headers в проекте nodejs (10.15) / express (4.16):
router.get("/active", [auth_deviceid, auth_userinfo, auth_role(['admin', 'eventer', 'messanger'])], async (req, res) => {
try {
let events = await Event.findAll({where: {status : "active", fort_token: req.user.fort_token}, attributes: {exclude: ['fort_token']}
}); //<<==successful
return res.status(200).send(events); //<<==line 97 throws error
} catch (err) {
console.log("error in event/active : ", err);
return res.status(400).send(err); //<<==Here is the return executed
};
});
return res.status(200)
выдает ошибку:
error in event/active : Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:470:11)
at ServerResponse.header (C:\d\code\js\emps_bbone\node_modules\express\lib\response.js:767:10)
at ServerResponse.send (C:\d\code\js\emps_bbone\node_modules\express\lib\response.js:170:12)
at ServerResponse.json (C:\d\code\js\emps_bbone\node_modules\express\lib\response.js:267:15)
at ServerResponse.send (C:\d\code\js\emps_bbone\node_modules\express\lib\response.js:158:21)
at router.get (C:\d\code\js\emps_bbone\routes\events.js:97:32)
В промежуточном программном обеспечении auth_userinfo
Установлено 2 заголовка:
res.header({"x-auth-token" : token, "x-auth-secret" : secret });
next();
Я считаю, что набор заголовков в промежуточном программном обеспечении вызывает ошибку, когда router.get
возвращает результат запроса. Существует сообщение об ошибке. Но я не могу исправить проблему в моем коде.