Tengo una autenticación básica en una ruta que, cuando se usa, arroja un error de consola.
Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:356:11) at ServerResponse.headerSolo ocurre cuando la declaración "if" es verdadera (se ejecuta el código dentro de la declaración if). Cuando eso no se ejecuta, no recibo ningún error y la vista "inicio" se muestra sin errores.
routes.get('/scan', (req, res, next) => { const orderID = req.query.order; const token = req.query.token; if (!hasAccess(token)) res.status(401).send('Unauthorized'); res.render('home', {order}); });Este error se produce cuando intenta responder más de una vez a su solicitud.
Para evitar este tipo de error, debe return al enviar una respuesta, por lo que la función no continuará.
En tu caso :
routes.get('/scan', (req, res, next) => { const orderID = req.query.order; const token = req.query.token; if( !hasAccess( token ) ) return res.status(401).send('Unauthorized'); return res.render('home', {order}); });Debe agregar un return; después de su res.status(401).send('Unauthorized'); para evitar enviar una respuesta duplicada.