koa动态路由配置

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反斜杠后面的数据