简单写一下express里这三种方法的区别,容易弄混:
1. req.query
代表url中的“?”后面所接的参数,比如:
http://localhost:3000/animals?page=10
在请求中要获取到page就是通过req.query方法:
app.get('/animals', ()=>{
console.log(req.query.page) // 10
})
因此实质上类似于浏览器方法里的location.search。
2. req.params
一般用于取出动态路由中的动态参数,也就是“:”后面的参数:
http://localhost:3000/giraffe/1
要取到后面的动态参数“1”,就用这个方法:
app.get('/giraffe/:number', (req, res) => {
console.log(req.params.number)
})
3. req.body
上面的两种方法一般用在get请求中,而body一般用在put/post请求中,因为put/post请求一般要传输的数据量和数据结构都比较复杂。
比如说现在有这么一个post请求
axios.post('/giraffe', {
key1: 'value1',
key2: 'value2'
})
要想获得key1和key2,就通过req.body方法:
app.get('/giraffe', (req, res) => {
console.log(req.body.key1) //value1
console.log(req.body.key2) //value2
})