# express.json
使用 JSON 有效负载解析传入请求,并且基于
body-parser
。
# 概要
express.json([options])
# 描述
这是 Express 中内置的中间件函数。它使用 JSON 有效负载解析传入请求,并且基于 body-parser
。
返回仅解析 JSON 并且仅查看 Content-Type
标头与 type
选项匹配的请求的中间件。此解析器接受正文的任何 Unicode 编码,并支持 gzip
和 deflate
编码的自动膨胀。
包含解析数据的新 body
对象在中间件(即 req.body
)之后填充到 request
对象上,如果没有要解析的主体、Content-Type
不匹配或发生错误,则填充一个空对象({}
)。
由于
req.body
的形状基于用户控制的输入,因此该对象中的所有属性和值都是不可信的,应该在信任之前进行验证。例如,req.body.foo.toString()
可能以多种方式失败,例如foo
可能不存在或可能不是字符串,toString
可能不是函数,而是字符串或其他用户输入。
下表描述了可选 options
对象的属性。
属性 | 描述 | 类型 | 默认 |
---|---|---|---|
inflate | 启用或禁用处理放气(压缩)的主体;当禁用时,瘪的主体会被拒绝。 | 布尔值 | true |
limit | 控制最大请求正文大小。如果这是一个数字,则该值指定字节数;如果是字符串,则将值传递给 bytes 库进行解析。 | 混合 | "100kb" |
reviver | reviver 选项作为第二个参数直接传递给 JSON.parse 。您可以找到有关此论点 在关于 JSON.parse 的 MDN 文档中 的更多信息。 | 函数 | null |
strict | 启用或禁用仅接受数组和对象;禁用时将接受 JSON.parse 接受的任何内容。 | 布尔值 | true |
type | 这用于确定中间件将解析的媒体类型。此选项可以是字符串、字符串数组或函数。如果不是函数,则 type 选项直接传递给 type-is 库,它可以是扩展名(如 json )、mime 类型(如 application/json )或带有通配符的 mime 类型(如 */* 或 */json )。如果是函数,则 type 选项被称为 fn(req) ,如果请求返回真值,则解析请求。 | 混合 | "application/json" |
verify | 此选项(如果提供)称为 verify(req, res, buf, encoding) ,其中 buf 是原始请求正文的 Buffer ,encoding 是请求的编码。可以通过抛出错误来中止解析。 | 函数 | undefined |
← 数据库集成 express.static →