文章目录
方法一:借助FeHelper插件>简易postman和req.query获取get请求参数
代码
loginRouter.js
var express = require("express");
var router = express.Router();
router.get("/login", function(req, res) {
console.log(req.query);//获取get请求参数
res.send("login page");
});
// 导出路由
module.exports = router;
index.js
// 导入路由中间件
var homeRouter = require("./router/homeRouter");
var loginRouter = require("./router/loginRouter");
app.use("/", homeRouter);
app.use("/", loginRouter);
app.use(function(req, res) {
res.status(404).send(`<html><h2>404 not found</h2></html>`);
});
app.listen(3000, function(req, res) {
console.log("server connect...");
});
postman:输入http://127.0.0.1:3000/login?name=zs&id=123456
结果:终端输出
server connect...
{ name: 'zs', id: '123456' }
方法二:同一个路径响应多种请求
代码
loginRouter.js
var express = require("express");
var router = express.Router();
// 路由级别:响应前端的get请求
router.get("/login", function(req, res) {
console.log(req.query);
res.send("login page");
});
// 路由级别:响应前端的post请求
router.post("/login");
// 路由级别:响应前端的put请求
// 路由级别:响应前端的delete请求
//同一个路径可以响应多种请求来实现增删改查
// 导出路由
module.exports = router;
方法三:配置第三方中间件body-parser处理POST请求的数据(username = ‘zs’& password = '12345字符串类型)
body-parser
第三方中间件body-parser在新版本中已经变成内置中间件,引入express后即可直接使用
引入方式:
新版本:
app.use(express.urlencoded({ extended: false }))
旧版本:
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));
代码
indexRouter.js
var express = require("express");
var router = express.Router();
// 路由级别:响应前端的get请求
router.get("/login", function(req, res) {
console.log(req.query);
res.send("login page");
});
// 路由级别:响应前端的post请求
router.post("/login", function(req, res) {
// console.log(req.body); //必须配置中间件body-parser
var obj = req.body;
for (var attr in obj) {
console.log(attr, "=", obj[attr]);
//输出:username = zs
//password = 123456
}
res.send({ isOk: true });
});
module.exports = router;
index.js
...
// 设置解析post参数的中间件,不用第三方,内置中间件
app.use(express.urlencoded({ extended: false }));
//这句话是固定搭配,表示可以处理post请求这种类型的参数:
...其他代码同上例...
结果
postman:
终端:
[Object: null prototype] { username: ‘zs’, password: ‘123456’ }
成功得到post请求的参数 { username: ‘zs’, password: ‘123456’ }
方法四:配置第三方中间件body-parser处理POST请求的数据({‘name’:‘zs’,‘age’:18}JSON类型)
代码
index.js
app.use(express.json());//可以处理post请求json类型的数据
...其他代码不变..
结果
postman:注意请求头要改成application/json
终端:
[Object: null prototype] { name: ‘zs’, age: ‘18’ }
成功获得数据
总结
GET请求:
地址栏或postman输入请求参数
console.log(req.query())获取参数并输出
POST请求:
引入body-parser第三方中间件/内置中间件
- 对于字符串数据:
app.use(express.urlencoded({ extended: false }));
- 对于JSON数据:
app.use(express.json());