Использование дополнительного промежуточного программного обеспечения в Express JS - PullRequest
0 голосов
/ 13 сентября 2018

Я хотел бы знать, чтобы использовать дополнительное промежуточное программное обеспечение в маршрутах Express, чтобы выглядеть примерно так:

router.post("/findAvailableAgents", middleware1 || middleware2, (req, res))

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Вы можете использовать другое промежуточное ПО , которое решает, выбрать ли промежуточное ПО1 или промежуточное ПО2

const decideMiddleware = (req, res, next) => {
    if(condition) {
        return middleware1(req, res,next)
    } else {
        return middleware2(req, res,next)
    }
}

И использовать его в своем коде

router.post("/findAvailableAgents", decideMiddleware, (req, res))
0 голосов
/ 13 сентября 2018

Существует два способа достижения необязательного поведения промежуточного ПО:

1) Создайте другое промежуточное ПО, которое проверяет состояние и затем передает все параметры в желаемое промежуточное ПО.Пример:

const middlewareStrategy = (req,res,next) => {
    if(req.body.token1){
        return middleware1(req,res,next);
    }
    return middleware2(req,res,next);
};

router.post("/findAvailableAgents", middlewareStrategy, handler);

2) Выполнение логики промежуточного программного обеспечения на основе условий.Пример:

const middleware1 = (req,res,next) => {
    if(req.body.token){
        // execute some logic, then
        return next();
    }
    // skip this middleware
    next();
};

router.post("/findAvailableAgents", middleware1, middleware2, handler);
0 голосов
/ 13 сентября 2018

Теперь вы можете добавить несколько промежуточных программ, используя приведенный ниже код

app.get('/',[middleware.requireAuthentication,middleware.logger], function(req, res){
    res.send('Hello!');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...