Я не могу использовать asyncHandler для обработки ошибок промежуточного программного обеспечения в экспресс - PullRequest
0 голосов
/ 10 января 2019

Я не могу использовать 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 по поводу: «наилучшей практики для обработки ошибок в экспресс-функции асинхронной» .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...