express接口获取request参数的三种方式
一、req.query()
req.query()可以用来获取接口请求中拼接在链接"?"后边的参数,主要用于get请求,post请求也适用。
req.query()被express原生支持,并且会自动将参数转换为对象形式返回。
例如:
请求:
app.get('http://localhost:5050/server?p=user&q=password').then(resp=>{})
express接口:
let express = require('express')
let server = express()
server.get('/server',(req,resp)=>{
console.log(req.query);
resp.send('')
})
server.listen(5050,()=>{
console.log('服务器已就绪')
})
请求后得到的结果:
二、req.params()
req.params()有些特殊,它适用于在url链接上传递数据参数,需要后台接口用==:变量名==的写法发起请求。
请求:
app.get('http://localhost:5050/nums/1000').then(resp => {})
express接口:
let express = require('express')
let server = express();
server.get('/nums/:num', (req, resp) => {
console.log(req.params);
resp.send('')
})
server.listen(5050, () =>{
console.log('服务器已就绪')
})
请求后得到的结果:
按照==:变量名==的方法也可以同时接收多个参数:
请求:
app.get('http://localhost:5050/nums/1000-2000/zhangsan').then(resp => {})
express接口:
let express = require('express')
let server = express();
server.get('/nums/:num1-:num2/:name', (req, resp) => {
console.log(req.params);
resp.send('')
})
server.listen(5050, () => {
console.log('服务器已就绪')
})
请求之后的结果:
三、req.body()
req.body()并被原生express所支持,需要使用一些第三方库来进行格式转换,这里使用的是body-parser库。转换过后就可以直接使用req.body()获取post请求的表单数据。
请求:
app.post('http://localhost:5050/people',{name: 'zhangsan', age: 15} ).then(resp => {})
express接口:
let express = require('express')
let server = express();
// 用 body-parser 库进行数据格式转换
let bodyParser = require("body-parser")
// 是否进行url解码
server.use(bodyParser.urlencoded({extended:true}))
// 将数据转换为json格式
server.use(bodyParser.json())
server.post('/people', (req, resp) => {
console.log(req.body');
resp.send('')
})
server.listen(5050, () => console.log('服务器已就绪'))
请求之后的结果: