# 获取请求参数
```
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!');
});
```
- NodeJs
- 01-万维网
- 02-CS 架构 VS BS 架构
- 03-Web 服务器访问流程
- 04-url
- 05-网络传输协议
- 06-HTTP 协议
- 07-报文
- 08-命令行界面
- 09-什么是 Node.js
- 10-环境安装及配置
- 11-JavaScript 代码运行环境
- 12-全局对象
- 13-Buffer
- 14-模块化
- 15-EventEmitter
- 16-path模块
- 17-流式操作
- 18-包
- 19-模板技术
- 20-ejs入门
- 21-express
- 01-什么是express
- 02-Hellow Express
- 03-静态资源服务
- 04-路由
- 05-模块化路由处理程序
- 06-中间件
- 07-手动实现中间件
- 08-常用内置中间件和第三方中间件
- 09-响应
- 10-获取请求参数
- 11-Express 中使用模板引擎
- 22-web存储与安全
- 01-cookie
- 02-sessionStorage
- 03-localStorage
- 04-base64
- 05-https
- 06-同源策略