2017-07-24 45 views
2

我遇到了很多博客和文章,他们建议使用body-parser来解析请求主体数据。有没有什么办法解析数据或从身体获取身体数据而不使用任何中间件?为什么我们需要明确的身体分析器?

+0

是的。您可以在req对象上添加事件来侦听'data'并在'end'上解析它。我曾经这样做,但要做更多的工作。这就是为什么身体分析器派上用场 – lumio

+2

[Body-parser在nodejs中用express来做什么?](https://stackoverflow.com/questions/38306569/what-does-body-parser-do-with- express-in-nodejs) – Li357

+0

@AndrewLi不同意。他们知道自己在这种情况下做了什么,但是想知道您是否必须使用或者有其他方法来执行此操作。你链接的问题想知道'body-parser'是什么。 –

回答

2

默认情况下,表达式只是将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,但如果有一个不同的模块以您喜欢的方式解析身体,您可以随时使用它。

相关问题