我遇到了许多博客和文章,他们建议使用正文解析器来解析请求正文数据。有没有办法解析数据或从身体获取身体数据而不使用任何中间件?
答案 0 :(得分:2)
默认情况下,express只是在req
参数中为原始HTTP请求体提供IncomingMessage
,它基本上是Readable
流。例如,当您发出表单POST请求时,表单可能会以various ways if made by a web browser编码,或者可能是JSON或某种任意格式。 body-parser
模块知道如何读取HTTP请求正文并理解各种常见编码的特定列表。
Express主要是一个非常简单的框架,用于将中间件连接在一起并为您的应用程序声明路由。通过做很少的事情并且做得非常好,它可以被更多人使用,并且可以使用。例如,如果您想在HTTP请求中发送自己的格式,则可能需要编写自己的代码而不是使用body-parser
。一些HTTP服务器框架具有烘焙等效功能。在这样的框架中,扩展主体解析功能甚至不可能是困难/困惑的。 Express项目建议body-parser
,但是如果有一个不同的模块以你更喜欢的方式解析身体,你可以随时使用它。
答案 1 :(得分:0)
Express中间件是一个不受限制的Web框架,因此,如果您想将结果解析为JSON / form / multipart,则需要告诉Express如何解析正文。
主体解析器到了,您应该使用它,因为将主体解析为JSON或其他内容是您的要求,直到您的请求主体始终是流。