安装
npm install koa-router
简单例子
var Koa = require('koa');
var Router = require('koa-router');
var app = new Koa();
var router = new Router();
router.get('/', (ctx, next) => {
// ctx.router available
});
app
.use(router.routes()) //作用:启动路由
.use(router.allowedMethods()); // 作用: 这是官方文档的推荐用法,我们可以看到router.allowedMethods()用在了路由匹配router.routes()之后,所以在当所有路由中间件最后调用.此时根据ctx.status设置response响应头
匹配动态路由,比如http://127.0.0.1:3000/users/123,要获取到后面的123参数,就要使用:id来匹配
router.get('user', '/users/:id', (ctx, next) => {
// ... id = 123
});
// 多个参数
router.get('/:category/:title', (ctx, next) => {
console.log(ctx.params);
// => { category: 'programming', title: 'how-to-node' }
});
多重路由写法
router.get(
'/users/:id',
(ctx, next) => {
console.log(ctx);
next();
});
},
ctx => {
console.log(ctx);
}
);
往往大型商业项目,路由路径非常多,直接写在app.js,会显得比较入口文件臃肿,这个时候就需要路由分拆。
建立多个路由配置文件 router1-3.js,文件内容大致如下
const Router = require('koa-router')
const router = new Router()
router.get('/', async (ctx, next) => {
ctx.body = 'router_xx';
next();
})
module.exports = router.routes()
建立总路由配置文件 router.js,用他关联其他模块的路由
const Router = require('koa-router')
const router1 = require('../routes/router1')
const router2 = require('../routes/router2')
const router3 = require('../routes/router3')
var router = new Router()
// router.prefix = '/api';
router.use('/test', router1);
router.use('/test2', router2);
router.use('/test3', router3);
module.exports = router
在app.js里面启动总路由
const router = require('./myApp/config/router')
app
.use(router.routes())
.use(router.allowedMethods());