Express 使用 body-parser 处理 HTTP 请求
Node.js 教程
收录了这篇文章

body-parser 是一个 Node.js 中间件,用于处理 HTTP 请求的 body 部分。它特别有用,当你的应用需要解析客户端发送过来的 POST 数据时。尽管 body-parser 曾经是 Express 的一部分,但现在它是一个独立的模块,并且需要单独安装。

下面是一个详细的教程来帮助你开始使用 body-parser。

第一步:安装 body-parser

首先,你需要通过 npm 安装 body-parser。在命令行中运行以下命令:

npm install body-parser

第二步:设置基本的 Express 应用

创建一个新的 Node.js 项目,并初始化一个基本的 Express 服务器。确保你已经安装了 Express:

npm install express

创建一个 app.js 文件并添加以下代码:

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

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('App listening on port 3000!');
});

第三步:引入 body-parser

在你的 app.js 文件中引入 body-parser 并配置中间件。

const express = require('express');
const bodyParser = require('body-parser'); // 引入 body-parser
const app = express();

// 使用 body-parser 中间件
app.use(bodyParser.json()); // 解析 application/json 类型的数据
app.use(bodyParser.urlencoded({ extended: true })); // 解析 application/x-www-form-urlencoded 类型的数据

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('App listening on port 3000!');
});

第四步:处理 POST 请求

接下来,我们将添加一个路由来处理 POST 请求。假设你有一个表单,用户可以提交数据到这个端点。

1. 添加 POST 路由

在 app.js 文件中添加一个 POST 路由:

app.post('/submit', (req, res) => {
  const data = req.body; // 获取请求体中的数据
  console.log(data);
  res.send('Data received successfully');
});

2. 创建表单

创建一个简单的 HTML 表单来测试你的 POST 路由。在 public 目录下创建一个名为 index.html 的文件,并添加以下代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Simple Form</title>
</head>
<body>
  <form action="/submit" method="POST">
    <label for="name">Name:</label>
    <input type="text" id="name" name="name" required>
    <br>
    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required>
    <br>
    <button type="submit">Submit</button>
  </form>
</body>
</html>

第五步:访问表单和提交数据

确保你的 Express 服务器正在运行(node app.js),然后打开浏览器并访问 http://localhost:3000/index.html。填写表单并提交,你会看到终端中打印出提交的数据。

以上就是如何使用 body-parser 处理 HTTP 请求中的 body 部分的基本教程。你可以根据需要调整配置和路由以适应你的应用程序。

详细参数

Node.js 请求解析中间件。在处理程序之前,在中间件中解析传入的请求体,可在req.body属性下使用。

常见的四种Content-Type类型:

  • application/x-www-form-urlencoded 常见的form提交
  • multipart/form-data 文件提交
  • application/json 提交json格式的数据
  • text/xml 提交xml格式的数据

这个中间件不会解析multipart body,由于这种消息体很复杂而且也很大。对于multipart bodies,可以使用 multer

本模块提供了以下解析器

  • JSON体解析器
  • Raw解析器
  • Text解析器
  • URL-encoded form 解析器

可以通过body-parser 对象创建中间件,当接收到客户端请求时所有的中间件都会给req.body 添加属性,请求体为空,则解析为空{} (或者出现错误)。

 

官方文档:https://www.npmjs.com/package/body-parser

修改时间 2024-08-03

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
随机推荐
阿里云内容安全 API 签名机制
HTML select 下拉列表
WordPress 的用户角色和权限
JavaScript requestAnimationFrame 定时刷新
WordPress 调用自定义头像
MySQL的外键总结
WordPress 自定义文章类型
WordPress 增强编辑器功能