Я пытаюсь создать оболочку для обработки ошибок для использования с расширением маршрутизатора обещаний express в nodejs.
Для начала я пытаюсь просто обернуть функцию асинхронного обработчика:
function error_catcher(f)
{
return (async function (request, response) {
await f(request, response);
});
}
router.get("/bar", (error_catcher((async (request, response) => {
throw (new Error("bar error"));
}))()));
Однако, когда я запускаю это, я получаю:
Error: Expected a callback function but got a [object Promise]
at wrapHandler (/tmp/complete/node_modules/express-promise-router/lib/express-promise-router.js:10:15)
at /tmp/complete/node_modules/express-promise-router/lib/express-promise-router.js:87:24
at Array.map (<anonymous>)
at Function.instanceToWrap.(anonymous function) [as get] (/tmp/complete/node_modules/express-promise-router/lib/express-promise-router.js:86:38)
at Object.<anonymous> (/tmp/complete/server.js:361:8)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
Так что, если кто-то сможет указать на мою ошибку и помочь мне заставить работать оболочку для асинхронной функции, я смогу добавить исключениеловить и обрабатывать ошибки самостоятельно.