Установить заголовок res, вызывающий ERR_HTTP_HEADERS_SENT - PullRequest
0 голосов
/ 23 мая 2019

Следующая функция маршрутизатора вызывает ошибку после установки 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 возвращает результат запроса. Существует сообщение об ошибке. Но я не могу исправить проблему в моем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...