new Router中能设置多个中间件
时间: 2023-12-09 22:04:56 浏览: 85
是的,`koa-router` 的路由处理函数支持设置多个中间件,可以将多个中间件按顺序作为参数传入路由处理函数,例如:
```javascript
const Router = require('koa-router');
const koaBody = require('koa-body');
const authMiddleware = require('./middlewares/auth');
const router = new Router();
router.post('/upload', authMiddleware, koaBody({
multipart: true,
formidable: {
maxFileSize: 200 * 1024 * 1024, // 设置上传文件大小限制,默认2M
}
}), async (ctx) => {
const file = ctx.request.files.file;
console.log(file);
ctx.body = '文件上传成功';
});
module.exports = router;
```
在上面的示例中,我们将 `authMiddleware` 中间件和 `koa-body` 中间件作为参数传入路由处理函数,这样请求路径为 `/upload` 且请求方法为 `POST` 的请求就会先经过 `authMiddleware` 中间件的处理,再经过 `koa-body` 中间件的处理,最后执行路由处理函数。
需要注意的是,中间件的顺序很重要,如果顺序不正确可能会导致中间件无法正确执行。