Как создать промежуточное программное обеспечение Koa2, которое будет изменять тело ответа и работать последним в цепочке? - PullRequest
0 голосов
/ 12 июня 2019

У меня есть приложение Koa2, которое отображает шаблоны на разных маршрутах. Я хотел бы представить промежуточное программное обеспечение, которое каким-то образом модифицирует визуализированные шаблоны, и мне нужно, чтобы оно было последним в цепочке других промежуточных программ. Есть ли способ принудительно применить какое-то промежуточное программное обеспечение last перед отправкой ответа с использованием Koa2 и без изменения уже определенных маршрутов?

Я попробовал код ниже:

// modification middleware
app.use(async function (ctx, next) {
  await next();
  ctx.body = ctx.body.toUpperCase();
})

// template rendering
app.use(async function (ctx, next) {
  const users = [{ }, { name: 'Sue' }, { name: 'Tom' }];
  await ctx.render('content', {
    users
  });
});

app.listen(7001);

Работает как положено, но если какое-либо другое промежуточное программное обеспечение будет введено до modification, оно будет не последним в цепочке.

Можно ли достичь описанного поведения?

...