15 lines
364 B
JavaScript
15 lines
364 B
JavaScript
|
/**
|
||
|
* Useful for wrapping `async` request handlers so they
|
||
|
* automatically propagate errors.
|
||
|
*/
|
||
|
export default function asyncHandler(handler) {
|
||
|
return (req, res, next) => {
|
||
|
Promise.resolve(handler(req, res, next)).catch(error => {
|
||
|
console.error(`Unexpected error in ${handler.name}!`);
|
||
|
console.error(error);
|
||
|
|
||
|
next(error);
|
||
|
});
|
||
|
};
|
||
|
}
|