GET请求的参数在URL中,在原生Node中,需要使用url模块来识别参数字符串。在Express中,不需要使用url模块了。可以直接使用req.query对象。
POST请求的参数解析必须使用body-parser模块(此中间件已经被express集成,无需调用安装body-parser,可以直接采用express.json() express.urlencoded()实现相同功能。)使用后,将可以用req.body得到参数。
req.params,req.query是用在get请求当中
1、req.params
//例子 http://localhost:3000/1234
app.get("/:id",function (req,res) {
res.send(req.params["id"]);
});
把请求 / 后面的参数当成id,通过req.params就能获取到id,返回页面也就是1234
2、req.query
// http://localhost:3000/?id=10
app.get("/",function (req,res) {
res.send(req.query["id"]);
});
如果有两个或以上参数,用 & 连接,如:/?id=2&name=node, 获取参数则是:req.query.id 得到 1 , req.query.name 得到 node
req.body是用在post请求当中
1、body-parser中间件写法(已弃用)
var express = require('express')
var bodyParser = require('body-parser')
const cors = require('cors');
var app = express();
//解决跨域
app.use(cors());
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json())
app.post('/service/update', (req, res) => {
console.log("res",req.body)
})
app.listen(3000, function () {
console.log('app is runing at port 3000');
})
2、express最新版版内置了post参数解析,可以直接调用express
var express = require('express')
const cors = require('cors');
var app = express();
//解决跨域
app.use(cors());
app.use(express.urlencoded({ extended: false }))
app.use(express.json())
app.post('/service/update', (req, res) => {
console.log("res",req.body)
})
app.listen(3000, function () {
console.log('app is runing at port 3000');
})