全书目录

第十二篇:Express 完全指南 —— 老城区主干道宇宙

第七章:请求体解析 —— 先学会拆包裹

1 分钟 196 字 第 245 / 962 个阅读单元

很多新手第一次看到 req.body === undefined,本质上是:

车进城了,但你没安排拆包裹的人。

Express 常见拆包方式:

js
const express = require('express');
const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

它们分别处理:

  • express.json():JSON 请求体
  • express.urlencoded(...):表单提交
#1. JSON 请求体
js
app.use(express.json());

app.post('/roads', (req, res) => {
  res.json({
    received: req.body
  });
});

请求:

http
POST /roads
Content-Type: application/json

{
  "name": "中山主路",
  "district": "east"
}
#2. 表单请求体
js
app.use(express.urlencoded({ extended: true }));

app.post('/roads/form', (req, res) => {
  res.json(req.body);
});
#3. 顺序别放错

错误写法:

js
app.post('/roads', (req, res) => {
  res.json(req.body);
});

app.use(express.json());

这相当于:

窗口先开始办业务,拆包站还没上岗。