Por mi lado también estoy recibiendo el error Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client at new ...

Pregunta de la clase:
Manejo de errores con Boom
Felipe Riquelme

Felipe Riquelme

Pregunta
studenthace 3 años

Por mi lado también estoy recibiendo el error

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

at new NodeError (node:internal/errors:371:5)

at ServerResponse.setHeader (node:_http_outgoing:576:11)

En archivo “productos.routes.js” al trazar la caída, puedo ver que se esta saliendo por el el Catch:

router.get(’/:id’, async (req, res, next) => {

try {

const { id } = req.params;

const productos = await service.findOne(id);

res.json(productos);

} catch (error){

console.log(‘Error en Router Productos.’)

next(error);

}

});

2 respuestas
para escribir tu comentario
    Gerardo Miranda

    Gerardo Miranda

    studenthace 3 años

    yo lo resolví poniendo un retuen al final del if

    function boomErrorHandler(err, req, res, next) { if (err.isBoom) { const { output } = err; res.status(output.statusCode).json(output.payload); return; } next(err); }
    juan alberto

    juan alberto

    studenthace 3 años

    supongo que ya lo habrás solucionado, pero para quien no, yo lo solucione metiendo el next(err) dentro de un else en la función boom, quedando de la siguiente manera:

    function boomErrorHandler(err, req, res, next) { if (err.isBoom) { const { output } = err; res.status(output.statusCode).json(output.payload); } else { next(err); } }

    supongo que llama el errorhandler aun despues de haber retornado ya el error desde el boomErrorHandler.

Curso de Backend con Node.js: API REST con Express.js

Curso de Backend con Node.js: API REST con Express.js

¡Aprende desarrollo backend con Node.js! Trabaja con rutas, servidores y middlewares de Express.js. Construye una API, manipula errores y haz validación de datos. Despliega tu aplicación a producción en Heroku. Conviértete en backend developer con Node.js junto a tu profesor Nicolas Molina.

Curso de Backend con Node.js: API REST con Express.js
Curso de Backend con Node.js: API REST con Express.js

Curso de Backend con Node.js: API REST con Express.js

¡Aprende desarrollo backend con Node.js! Trabaja con rutas, servidores y middlewares de Express.js. Construye una API, manipula errores y haz validación de datos. Despliega tu aplicación a producción en Heroku. Conviértete en backend developer con Node.js junto a tu profesor Nicolas Molina.