🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 获取请求参数 ``` Express 中 request 对象表示 HTTP 请求,包含了请求查询字符串,参数,内容,HTTP 头部等属性。 常见属性有: req.protocol: 获取协议类型 req.hostname: 获取主机名 req.ip: 获取 IP 地址 req.path: 获取请求路径 req.query: 获取 URL 的查询参数串 req.params: 获取路径的参数 req.body: 获取请求体 // 应用中间件才能获取值 req.cookies: 获取 Cookies // 应用中间件才能获取值 req.get(): 获取指定的 HTTP 请求头 ``` ## GET 方式获取请求参数 ``` // GET 方式获取请求参数 const express = require('express'); const app = express(); app.get('/', (req, res) => { console.log(req.query); console.log(req.ip); res.send('GET'); }); app.listen(8888, () => { console.log('Example app listening on port 8888!'); }); ``` ## POST 方式获取请求参数 注意:POST 方式接收获取请求参数,须使用第三方中间件 body-parse(后面的版本自己也内置这样类似中间件),npm install body-parse,若没有使用 req.body 的值为 undefined。注意新版本的 Express 内置提供这样的中间件。 # 注意读上面的话 ``` / 应用中间件, 针对任意请求路径, Post 方式, 你请求数据数据类型是 application/x-www-form-urlencoded // 会想上面获取请求体数据, 还会帮你转成 JS 对象, 并设置请求对象的 body 属性上 app.use(express.urlencoded()); // 应用中间件, 针对任意请求路径, Post 方式, 你请求数据数据类型是 application/json // 会想上面获取请求体数据, 还会帮你转成 JS 对象, 并设置请求对象的 body 属性上 app.use(express.json()) ``` # 注意读上面的话 ``` 引入 app.use(express.urlencoded({extended: false})); app.use(express.json());; // 应用中间件 ``` ``` // POST 方式获取表单类型的请求参数 const express = require('express'); const app = express(); app.use(express.urlencoded({extended: false})); app.post('/', (req, res) => { console.log(req.body); res.send('POST application/x-www-form-urlencoded'); }); app.listen(8888, () => { console.log('Example app listening on port 8888!'); }); ``` ``` // POST 方式获取 JSON 类型的请求参数 {"name" : "zs"} const express = require('express'); const app = express(); app.use(express.json());; // 应用中间件 app.post('/', (req, res) => { console.log(req.body); res.send('POST application/json'); }); app.listen(8888, () => { console.log('Example app listening on port 8888!'); }); ```