javascript - body-parser 实际上对 Express 做了什么?

标签 javascript node.js

好吧,所以我正在检查我在学习一些教程时编写的旧 Node 代码。

我很难弄清楚 Body Parser 的确切功能。我也在使用ejs package

所以,我的基本直觉告诉我,主体解析器用于在 Node 和我的 html 模板之间传输数据,而 ejs 包用于将 javascript 嵌入到 HTML 模板中。

有人可以确认我的想法是否正确吗?由于某种原因,他们的文档对我来说似乎太先进了,无法理解。 另外,如果有人也可以确认 * *npm request 的功能** 是进行API调用吗?

最佳答案

让我们尽量保持最不技术性。

假设您正在向 Node-js 服务器发送 html 表单数据,即您向服务器发出了请求。服务器文件将在请求对象下接收您的请求。现在按照逻辑,如果您在服务器文件中控制台记录此请求对象,您应该会在其中的某个位置看到表单数据,然后可以提取这些数据,但是哇!你实际上没有!

那么,我们的数据在哪里?如果它不仅仅出现在我的请求中,我们将如何提取它。

对此的简单解释是,http 以零散的形式发送您的表单数据,这些数据旨在在到达目的地时进行组装。那么您将如何提取数据。

这里描述了一个实际的方法:How bodyParser() works – Adam Zerner – Medium

但是,为什么每次都要手动解析数据 block 并组装它呢?使用名为“body-parser”的东西来为您完成此操作。

body-parser 解析您的请求并将其转换为一种格式,您可以从中轻松提取您可能需要的相关信息。

例如,假设您的前端有一个注册表单。您正在填写它,并请求服务器将详细信息保存在某处。

如果您使用 body-parser,从您的请求中提取用户名和密码就像下面一样简单。

………………………………………………………….

var loginDetails = {

username : request.body.username,

password : request.body.password

};

………………………………………………………….

基本上,body-parser 解析您传入的请求,组装包含表单数据的 block ,然后为您创建此正文对象并用您的表单数据填充它。

关于javascript - body-parser 实际上对 Express 做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49545883/

相关文章:

node.js - Electron 中的IPC发送/打开和调用/处理有什么区别?

javascript - Slick Carousel 不会在初始页面加载时加载

javascript - ExpressJS 将 route 的时间戳转换为 mm/dd/yyyy

javascript - 识别使用 JQuery 提交的表单

javascript - 错误 : Value for argument "value" is not a valid query constraint. 无法使用 "undefined"作为 Firestore 值

javascript - Electron 中的 REST API

javascript - jQuery Sidescroll,动画 ScrollLeft

javascript - 将数据从 php 传递到 javascript 以用于混合应用程序

javascript - 使用新的 accessToken 更新应用程序中的 accessToken 的最佳方法是什么?

javascript - Socket.io 仅向当前用户发送