Simple wrapper for Express route handlers, which propagates errors to the centralized error handler.
npm install express-async-catch
Import the wrapper function:
const asyncCatch = require('express-async-catch');
Wrap your route handlers:
app.get(
'/api/product/list',
asyncCatch(async (req, res, next) => {
// ...
})
);
- This wrapper will catch thrown Errors.
- This wrapper will catch promise rejections, when the await keyword is used.
- It cannot catch errors that generated by un-awaited promises.
- It cannot catch errors that are handled via callbacks.
- It cannot be used to wrap the error handler (signature err, req, res, next) because it expects the wrapped route handler to have the signature (req, res) or (req, res, next).