什么是express.json()和express.urlencoded()?
我无法在 和 上找到任何文档。他们每个人到底做了什么?express.json()
express.urlencoded()
我无法在 和 上找到任何文档。他们每个人到底做了什么?express.json()
express.urlencoded()
这是应该清除对和 body-parser 的使用的疑虑的解释。我花了一些时间才弄清楚这一点。express.json()
express.urlencoded()
什么是中间件?正是这些方法/函数/操作被调用 BETWEEN 处理请求并在应用程序方法中发送响应。
当谈论并具体考虑POST请求(即.post请求对象)和PUT请求(即.put请求对象)时express.json()
express.urlencoded()
对于 GET 请求或删除请求,您不需要 和。express.json()
express.urlencoded()
您需要和POST和PUT请求,因为在这两个请求中,您都向服务器发送数据(以某些数据对象的形式),并且您要求服务器接受或存储该数据(对象),该数据(对象)包含在该(POST或PUT)请求的正文(即)中express.json()
express.urlencoded()
req.body
Express为您提供了中间件来处理请求正文中的(传入)数据(对象)。
一个。 是一种内置于 express 中的方法,用于将传入的请求对象识别为 JSON 对象。此方法在应用程序中使用代码作为中间件调用:express.json()
app.use(express.json());
b. 是一种内置于 express 中的方法,用于将传入的请求对象识别为字符串或数组。此方法在应用程序中使用代码作为中间件调用:express.urlencoded()
app.use(express.urlencoded());
或者,我建议使用正文解析器(它是一个NPM包)来做同样的事情。它是由建造Express的相同窥视者开发的,旨在与Express一起使用。body-parser曾经是express的一部分。考虑专门针对POST请求(即.post请求对象)和/或PUT请求(即.put请求对象)的正文解析器。
在正文解析器中,您可以执行
// calling body-parser to handle the Request Object from POST requests
var bodyParser = require('body-parser');
// parse application/json, basically parse incoming Request Object as a JSON Object
app.use(bodyParser.json());
// parse application/x-www-form-urlencoded, basically can only parse incoming Request Object if strings or arrays
app.use(bodyParser.urlencoded({ extended: false }));
// combines the 2 above, then you can parse incoming Request Object if object, with nested objects, or generally any type.
app.use(bodyParser.urlencoded({ extended: true }));
和中间件都是 bodyParser 的一部分。这是自述文件所说的:json
urlencoded
bodyParser([options])
返回同时解析 和 的中间件。将 传递到两个中间件。
json
urlencoded
options
bodyParser.json([options])
返回仅解析 的中间件。选项包括:
json
strict
- 只解析对象和数组limit
<1mb> - 最大请求正文大小reviver
- 传递到JSON.parse()
bodyParser.urlencoded([options])
返回仅使用 qs 模块进行分析的中间件。选项包括:
urlencoded
limit
<1mb> - 最大请求正文大小