express-unless
express-unless copied to clipboard
"UnhandledPromiseRejectionWarning" if middleware throws exception (Version 1.0.0)
When my authentication middleware is throwing an exception (see code below), an 'UnhandledPromiseRejectionWarning" is issued. The exception is not propagated further, which causes problems in my program. This problem did not exist in the previous version 0.5.0.
export function requiresAuth(req, res, next) {
if (req.session && req.session.user && req.session.user.id) {
return next();
} else {
throw new NoValidSessionError('requiresAuth');
}
}
requiresAuth.unless = require('express-unless');
Possible fix in index.js:
try {
middleware(req, res, next);
} catch(err) {next(err)}
This has become a bigger issue in newer node versions since now unhandled rejections crash the process. Also note that Express v5 will handle promise rejections and forward to error handlers so it might be worth to do that in this middleware as well. The fix should be pretty easy I think