还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。
No.内容链接1Openlayers 【入门教程】 - 【源代码+示例300+】 2Leaflet 【入门教程】 - 【源代码+图文示例 150+】 3Cesium 【入门教程】 - 【源代码+图文示例200+】 4MapboxGL【入门教程】 - 【源代码+图文示例150+】 5前端就业宝典 【面试题+详细答案 1000+】
文章目录
一、安装 body-parser二、基本使用示例1. 解析 application/x-www-form-urlencoded 数据2. 解析 application/json 数据3.解析文本数据 (text/plain)
三、注意事项
body-parser 是一个 Node.js 中间件,用于解析 HTTP 请求体(请求正文)。在 Express 应用中,它尤其有用,因为它可以帮助你处理 POST、PUT、DELETE 等请求中的 JSON、URL-encoded 数据或文本数据。默认情况下,Express 不会解析请求体,因此需要借助 body-parser 或类似的库。
一、安装 body-parser
首先,你需要通过 npm 安装 body-parser:
npm install body-parser
二、基本使用示例
下面是一些使用 body-parser 解析不同类型请求体的示例代码。
1. 解析 application/x-www-form-urlencoded 数据
这种格式的数据常用于 HTML 表单提交,默认的编码类型就是 application/x-www-form-urlencoded。
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// 使用 urlencoded 中间件
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/login', (req, res) => {
const username = req.body.username;
const password = req.body.password;
// 处理登录逻辑...
res.send(`尝试以用户名: ${username}, 密码: ${password} 登录`);
});
app.listen(3000, () => {
console.log('服务器正在监听 3000 端口');
});
2. 解析 application/json 数据
对于发送 JSON 格式数据的请求,比如 AJAX 请求,可以使用 json 中间件。
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// 使用 json 中间件
app.use(bodyParser.json());
app.post('/api/data', (req, res) => {
const data = req.body;
console.log(data);
res.send('JSON 数据已接收');
});
app.listen(3000, () => {
console.log('服务器正在监听 3000 端口');
});
3.解析文本数据 (text/plain)
虽然不常见,但你也可以解析纯文本请求体。
const express = require('express');
const bodyParser = require('body-parser');
const textParser = bodyParser.text();
const app = express();
app.post('/text', textParser, (req, res) => {
const text = req.body;
console.log('接收到的文本:', text);
res.send('文本数据已接收');
});
app.listen(3000, () => {
console.log('服务器正在监听 3000 端口');
});
三、注意事项
自 Express 4.16.0 版本起,Express 增加了内置的 bodyParser 支持,可以直接使用 express.json() 和 express.urlencoded() 而不必单独安装 body-parser。例如:
const express = require('express');
const app = express();
// 相当于 body-parser 的 json 和 urlencoded
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
// ...后续路由处理...
这些示例展示了如何使用 body-parser 来处理不同类型的请求体数据,使你可以方便地从请求中提取并操作这些数据。
参考文章
发表评论