router的请求地址问题

来源:3-1 路由系统

沧林

2020-02-23

我可以像下面这么获取请求过来的id值

const router = new Router({
    prefix: '/v1/book'
})

router.get('/:id', async(ctx, next)=>{
	const id = ctx.params.id
})

但是如果我想写成url=‘localhost:3000/v1/book?id=100’,router的get路径应该像下面这么写?还是说koa-router的规则不可以加问号?谢谢。

const router = new Router({
    prefix: '/v1/book'
})

router.get('?id=:id', async(ctx, next)=>{
	const id = ctx.params.id
})
写回答

2回答

可乐小猫

2020-02-24

const router = new Router({
   prefix: '/v1/book'
})

router.get('/', ctx=> {
    const id = ctx.query.id
})

路径中使用冒号开头的参数可以在params中获取

路径尾部?带的参数可以被query获取两个是不同的

0
1
沧林
非常感谢!
2020-03-01
共1条回复

沧林

提问者

2020-03-01

自问自答。。。在 koa2 中 GET 传值通过 request 接收,但是接收的方法有两种:query 和 querystring。 query:返回的是格式化好的参数对象。querystring:返回的是请求字符串。

比如 url:localhost:3000/v1/book/favor?id=100 路由地址应该写成以下

const router = new Router({
    prefix: '/v1/book'
})

router.get('/favor', async(ctx, next)=>{
	const id = ctx.query.id  
	//这样就能获得到请求中的100数值了
})


0
0

Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

理解异步编程本质/培养面向对象思维,独立完成Node.js服务端开发

2223 学习 · 878 问题

查看课程