Я не могу использовать asyncHandler для обработки ошибок промежуточного программного обеспечения в Express, у вас есть альтернатива?
Пример кода:
const express = require("express");
const asyncHandler = require("express-async-handler");
const router = express.Router();
router.get("/", function (req, res, next) {
//req.user created by middleware before
//In this case, user not have req.user
if (req.user) {
//Do Anything
} else {
return next(new Error("Authentication Required !"));
}
});
//Error Handling Middleware
router.use(asyncHandler(async function (err, req, res, next) {
console.log("Test !");//Not execute
}));
module.exports = router;
Когда я использую функцию async
без asyncHandler
из внешней библиотеки, промежуточное ПО обработки ошибок раздела было успешно выполнено. Причина, по которой я использую asynHandler
из внешней библиотеки, из-за хорошего обработчика ошибок, я получил эту причину после поиск в Google по поводу: «наилучшей практики для обработки ошибок в экспресс-функции асинхронной» .