Error: Can't set headers after they are sent.

Si trabajas con el framework Express.js de Node y te has encontrado con el mensaje de error:

Error: Can’t set headers after they are sent.

Comprueba los siguientes puntos para solucionarlo:

  • No invocar a más de un res.redirect() en la petición.
  • No invocar a más de un res.render() en la petición.
  • Recuerda que puedes llamar a res.redirect() o res.render() con el prefijo return para parar el flujo de ejecución y evitar. Por ejemplo:
if (err) { 
  return res.redirect('/500'); 
} 
res.redirect('/ok');
  • Si utilizas Coffeescript o no has puesto llaves, comprueba la identación.