解决方法
身体解析器提取传入的请求流的整个身体部分,并将其暴露在req.body上,使其更容易接触。是啊!你可以自己做,但使用身体解析器会做所需要的,并将节省你的麻烦。
现在,这只是总结;身体解析器为您提供了一个中间件,使用nodejs/zlib来解压缩传入的请求数据,如果压缩和stream-utils/raw-body等待请求体的完整原始内容“解析”之前。
在使用原始内容后,身体解析器将使用四种策略之一进行解析,具体取决于您决定使用的特定中间件:
> bodyParser.raw():实际上并不解析身体,只是在缓冲区中将缓存的内容暴露在req.body上。
> bodyParser.text():将缓冲区作为纯文本读取,并将生成的字符串暴露在req.body上。
> bodyParser.urlencoded():将文本解析为URL编码数据(浏览器倾向于将表单数据从常规表单设置为POST),并将结果对象(包含键和值)暴露在req.body上。为比较;在PHP中,所有这些都会自动完成并在$ _POST中公开。
> bodyParser.json():将文本解析为JSON,并将结果对象公开在req.body上。
只有将req.body设置为所需的内容,它才会调用堆栈中的下一个中间件,然后可以访问请求数据,而无需考虑如何解压缩并解析它。