express-unless icon indicating copy to clipboard operation
express-unless copied to clipboard

"UnhandledPromiseRejectionWarning" if middleware throws exception (Version 1.0.0)

Open nschmit opened this issue 2 years ago • 1 comments

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)}

nschmit avatar Mar 03 '22 09:03 nschmit

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

nathanlepori avatar Apr 14 '22 12:04 nathanlepori