# express.json

使用 JSON 有效负载解析传入请求,并且基于 body-parser

# 概要

express.json([options])

# 描述

这是 Express 中内置的中间件函数。它使用 JSON 有效负载解析传入请求,并且基于 body-parser

返回仅解析 JSON 并且仅查看 Content-Type标头与 type选项匹配的请求的中间件。此解析器接受正文的任何​​ Unicode 编码,并支持 gzipdeflate编码的自动膨胀。

包含解析数据的新 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 是原始请求正文的 Bufferencoding 是请求的编码。可以通过抛出错误来中止解析。 函数 undefined
Last Updated: 6/17/2023, 6:57:19 PM