Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

158
Visualizações
forma adecuada de manejar errores fatales en Node.js

De acuerdo con la documentación de Node.js , por lo general, no es una buena idea usar process.exit() porque las operaciones de E/S asíncronas como console.log() u otros métodos de registro (biblioteca de registro de Pino en mi caso) pueden omitirse, el proceso finaliza antes ellos completan su tarea. Me preguntaba cuál es la mejor manera de manejar los errores dentro de una función. Mi objetivo final es manejar los errores en una función y, si el error es fatal, salir del proceso.

Escribí una versión simplificada de lo que actualmente creo que es la mejor opción (similar a la solución explicada en los documentos de Node.js):

 const validateUserInput = (input) => { try { if (input === 'wrong') { throw new Error('sample error'); } // simplified } catch (err) { console.log('last message'); // process.exit(1) --> using this might skip IO operation like the log on previous line process.exitCode = 1; return false; } return true; }; if (validateUserInput('wrong')) { // rest of the code } // nothing should be written here
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

SIGTERM es la señal que le dice a un proceso que termine correctamente. Es la señal que envían los administradores de procesos como upstart o supervisord y muchos otros.

Puedes enviar esta señal desde dentro del programa, en otra función: leer más

 process.kill(process.pid, 'SIGTERM')

También puede configurar sus propios oyentes para este evento y realizar otras tareas.

 process.on('SIGTERM', () => { server.close(() => { console.log('Shutting down the application ...') }) })

Pero SIGTERM no es compatible con Windows, por lo que puede usar SIGINT en su lugar, aquí hay información útil sobre SIGINT

Después de recibir la señal SIGINT, el servidor Node.js inicia una secuencia de apagado y entra en el modo de apagado. Todas las solicitudes existentes se completan y no se aceptan nuevas solicitudes. Cuando se completa la última solicitud, el servidor cierra todas las conexiones y se apaga. Lee mas

Más sobre procesos aquí

about 4 years ago · Juan Pablo Isaza Relatório

0

Si se produce un error fatal, la aplicación deberá cerrarse correctamente para evitar que se produzca el comportamiento predeterminado y permitir que se ejecuten sentencias adicionales primero. Puede lograr esto creando un detector de eventos simple:

 // For app termination const gracefulShutdown = (msg, callback) => { server.close(() => { //execute additional code here console.log(`Application disconnected through ${msg}`); callback(); }) } process.on('SIGINT', () => { //execute additional code here gracefulShutdown('app termination', () => { process.exitCode = 1; }) })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda