[Node.JS] Como evitar que erros não capturados derrubem seu servidor
Erros ou exceptions lançadas dentro de funções assíncronas (async) ou dentro de timers (setTimeout e setInterval) que não estejam tratados em blocos catch podem acabar encerrando o processo principal de um servidor Node.JS.
Para evitar isto, basta colocar este código em seu arquivo principal:
process.on('uncaughtException', console.error)
Ele irá escutar pelo evento uncaughtException e executar a função fornecida.
Quando houver uma excessão não tratada, a função console.error vai recebê-la e não irá fechar o processo, ao invés disso, irá apenas mostrar o erro no console.
Caso você não queira mostrar o erro no console, ou fazer algo diferente com o erro, basta usar uma função anônima.
process.on('uncaughtException', (err) => {
// Faça o que quiser com o erro aqui
})