node-req.query/req.params/req.body

loading 2023年04月10日 28次浏览

简单写一下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
})