还有不止是req.query,req.params,又混进来一个req.body
好家伙,乱成一锅粥
假设前端现在用axios向后端发送一个请求,发送id值请求后端的数据
req.query
axios.get(`/api/?id=1234`)或者
axios.get(`/api`,{ params:{id:'1234' })在前端里面,router怎么发送的就怎么收
query发送的就用this.$route.query接收
params发送的就用this.$route.params接收
但是在这里,虽然第二种方式里面有params
但这两种我们都要用req.query.id来获取里面的id值
router.get('/api',function(req,res){
console.log(req.query.id)
.......
})req.params
那如果直接把id值写进发送的url里面呢
axios.get(`/api/1234`)看这个形式有没有觉得很眼熟
它跟上面params的url非常像, 我们就反向操作一下
router.get('/api/:id',function(req,res){
console.log(req.params.id)
.......
})如果它是这么请求的
axios.get(`/api/1234-12`)中间用-或者&隔开
那我们也可以在获取时的路径上这么写
router.get('/api/:id-:age',function(req,res){
console.log(req.params.id)
console.log(req.params.age)
.......
})req.body
上面两个都是处理get请求的
而这位小兄弟就是用来处理post请求的
(需要安装body-parser中间件)
axios.post(`/api`,{ id:'1234' })我们就用req.body来接收
router.get('/api',function(req,res){
console.log(req.body.id)
.......
})总结
我们归纳了query和params在前端路由以及后端接收中的区别
容易混淆的东西还是得多写,多总结
希望这篇文章对大家分清它们的使用场景有所帮助










