koa-router基本使用

本文介绍了Koa-router的基本用法,包括安装、导入、不同请求类型(如get、post、all),路由传值,多个中间件的使用,路由数组,通配符匹配,以及router.use()作为路由前置中间件的功能。重点讨论了如何处理请求、传递参数和应用中间件的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 安装
npm i koa-router
2. 导入
const router=require('koa-router')({
	prefix:"/user",    // 路由前缀
});
3. 不同请求
请求方式有get、post、put、del、all,主要使用get和post,all接收所有请求类型,当all和其他类型同时存在时,优先使用其他类型。
// 修改为其他请求类型,只需要将get改成需要的类型即可
router.get('/user',async(ctx,next)=>{
	ctx.body="get请求方式返回数据";
	await next();
})
4. 路由传值

可以接收多个参数,如接收参数id和no
传递的参数会在ctx.params对象中
访问时以 http:localhost:3000/user/111/666这种方式访问

router.get('/user/:id/:no',async(ctx,next)=>{
    ctx.body="Hello World";
    console.log(ctx.params);  //   {id:111,no:666}
    await next();
})
5. 多个中间件
匹配一个路由可以使用多个中间件,但是如果使用ctx.body,后写的会覆盖先写的
router.get('/profile',(ctx,next)=>{
     console.log('中间件1')
   	 next();
},(ctx,next)=>{
    console.log('中间件2')
    ctx.body='单路由对应多中间件';
    next();
})
6. 路由数组
router.get(['/home','/index'],(ctx,next)=>{
   	console.log('多路由对应相同的中间件')
    next();
})
7. * 匹配任意路径 但是优先级比较低 有符合的路径时 就不会被匹配
// *匹配任意url  即可以接收所有get的请求
router.get('/*',async(ctx,next)=>{
  	ctx.body='anything';
  	await next();
})

// 仅仅只有 '/*' 路由时,访问profile路径,返回的是anything */
// 但是 如果有具体的get请求时 优先使用具体的路由  如下:

router.get('/profile',async(ctx,next)=>{
  	ctx.body='profile';
  	await next();
})

// 当 '/*'和'/profile'同时存在时 当路径是profile时   '/*'不起作用 即返回profile
8. router.use() 路由的前置中间件 可以理解为 所有router所属的路由匹配前都会先执行的中间件 可以进行一些验证
router.use(async (ctx,next)=>{
	console.log("前置中间件 可以用于做验证等");
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值