好吧,所以我正在检查我在学习一些教程时编写的旧 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/