Koa2: как написать цепочку промежуточного программного обеспечения?

Итак, в экспрессе у нас может быть цепочка промежуточного программного обеспечения, копирует пример:

middleware = function(req, res){
  res.send('GET request to homepage');
});

app.get('/', middleware, function (req, res) {
  res.send('GET request to homepage');
});

Какой эквивалентный способ написать это в koa2, пожалуйста? Я думаю использовать его для маршрута, для каждого маршрута я хочу иметь промежуточное программное обеспечение, чтобы проверить, вошел ли пользователь в систему.

Спасибо !


person user3552178    schedule 13.09.2017    source источник


Ответы (1)


Если вы просто заинтересованы в том, чтобы ПО промежуточного слоя работало для каждого маршрута, все, что вам нужно сделать, это зарегистрировать ПО промежуточного слоя, прежде чем регистрировать ПО промежуточного слоя маршрутизации.

app.use(middleware);

Пока вы вызываете его перед "использованием" маршрутизатора, он будет вызываться для каждого запроса. Просто убедитесь, что вы вызываете следующую функцию. Вот как может выглядеть ваше промежуточное ПО:

function middleware(ctx, next) {

   // Authenticate user

   // Eventually call this
   return next();

}
person Evert    schedule 13.09.2017
comment
так что я могу связать промежуточное ПО таким же образом? Как насчет того, чтобы просто применить промежуточное ПО к определенным маршрутам? - person user3552178; 13.09.2017
comment
ну, это в документе, router.use(session(), authorize()); // использовать промежуточное ПО только с заданным путем router.use('/users', userAuth()); app.use(маршрутизатор.маршруты()); - person user3552178; 13.09.2017