Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

151
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!