# 獲取請求參數
```
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-同源策略