Express 面试题
目录

如何使用 express.urlencoded 中间件解析 URL 编码的请求体?

· 约 3 分钟读完 · 第 21 / 120 章

推荐答案

本题详细解读

1. express.urlencoded 中间件的作用

express.urlencoded 是 Express 框架提供的一个内置中间件,用于解析 application/x-www-form-urlencoded 格式的请求体。这种格式通常用于 HTML 表单提交的数据。

2. extended 选项

  • extended: true:使用 qs 库解析 URL 编码的数据,支持嵌套对象。
  • extended: false:使用 querystring 库解析 URL 编码的数据,不支持嵌套对象。

3. 使用场景

当你需要处理来自 HTML 表单的 POST 请求时,通常需要使用 express.urlencoded 中间件来解析请求体中的数据。解析后的数据会存储在 req.body 对象中,你可以通过 req.body 访问这些数据。

4. 示例代码解析

  • app.use(express.urlencoded({ extended: true }));:这行代码将 express.urlencoded 中间件应用到 Express 应用中,并启用 extended 选项以支持嵌套对象。
  • app.post('/submit', (req, res) => {...});:这是一个 POST 请求的路由处理函数,当客户端向 /submit 路径发送 POST 请求时,服务器会解析请求体中的数据,并将其存储在 req.body 中。
  • res.send('Data received');:服务器向客户端发送响应,表示数据已接收。

5. 注意事项

  • 如果你不启用 express.urlencoded 中间件,req.body 将会是 undefined。
  • express.urlencoded 中间件只能解析 application/x-www-form-urlencoded 格式的请求体,对于其他格式(如 JSON),你需要使用 express.json() 中间件。