koa路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问。
每一个路由都可以有一个或者多个处理器函数,当匹配到路由时,这个/些函数将被执行。
koa中我们经常需要把某种模式匹配到的所有路由,全都映射到同个方法。例如,我们有一个 新闻详情的路由件,对于所有 ID 各不相同的用户,都要使用这个方法来渲染。那么,我们可以在 koa的路由路径中使用『动态路径参数』
下面的代码展示了koa动态路由配置实例:
//引入 koa模块
var Koa=require('koa');
var router = require('koa-router')(); /*引入是实例化路由** 推荐*/
//实例化
var app=new Koa();
router.get('/',async (ctx)=>{
ctx.body="首页";
})
router.get('/news',async (ctx)=>{
ctx.body="新闻列表页面";
})
//动态路由 http://localhost:3000/newscontent/xxxx
router.get('/newscontent/:aid',async (ctx)=>{
//获取动态路由的传值
console.log(ctx.params); //{ aid: '456' }
ctx.body="新闻详情";
})
//动态路由里面可以传入多个值
//http://localhost:3000/package/123/456
router.get('/package/:aid/:cid',async (ctx)=>{
//获取动态路由的传值
console.log(ctx.params); //{ aid: '123', cid: '456' }
ctx.body="新闻详情";
})
app.use(router.routes()); /*启动路由*/
app.use(router.allowedMethods());
app.listen(3000);
这个时候我们浏览器输入 http://localhost/newscontent/123
或者输入http://localhost/newscontent/1
或者输入http://localhost/newscontent/456
通过ctx.params就可以获取newscontent反斜杠后面的数据