在一个变量中调用多个中间件/参数 - deno oak 框架

call multiple middleware / arguments in one variable - deno oak framework

我有这个代码

const keren = async (ctx: Context, next: any) => {
  console.log('keren');

  await next();
}

const mantap = async (ctx: Context, next: any) => {
  console.log('mantap');

  await next();
}

router.get('/owkowkkow',keren,mantap,(ctx: Context) => {
  ctx.response.body = "wkwkwkw";
});

效果很好,但我想在一个名为 onevar 的变量中使用 keren 和 mantap

所以代码会像这样:

router.get('/owkowkkow',onevar,(ctx: Context) => {
  ctx.response.body = "wkwkwkw";
});

怎么做?可以吗?

Oak 带有 compose 中间件,允许您从多个中间件组成一个中间件

import { composeMiddleware as compose } from "https://deno.land/x/oak/mod.ts";

const onevar = compose([
    async (ctx: Context, next: any) => {
      console.log('keren');

      await next();
    },

    async (ctx: Context, next: any) => {
      console.log('mantap');

      await next();
    }
])

router.get('/owkowkkow',onevar,(ctx: Context) => {
  ctx.response.body = "wkwkwkw";
});