Promise rejections in Node.js only cause warnings. You want them to throw errors, so you can handle them properly.
It’s good practice to use fallback and subscribe to:
process.on(‘unhandledRejection’, callback)
This lets you throw an error properly.
Here’s what the error handling flow should look like.
…
const user = User.getUserById(req.params.id)
.then(user => user)
// missing a .catch() block
…
// if the Promise is rejected this will catch it
process.on(‘unhandledRejection’, error => {
throw error
})
process.on(‘uncaughtException’, error => {
logError(error)
if (!isOperationalError(error)) {
process.exit(1)
}
})