我遇到了很多博客和文章,他们建议使用body-parser来解析请求主体数据。有没有什么办法解析数据或从身体获取身体数据而不使用任何中间件?为什么我们需要明确的身体分析器?
2
A
回答
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
,但如果有一个不同的模块以您喜欢的方式解析身体,您可以随时使用它。
相关问题
- 1. 为什么我们需要为IMessenger.Subscribe()明确设置收件人?
- 2. 为什么Lucene QueryParser需要分析器
- 3. 为什么我们需要ioc容器
- 4. 分析协调:: task()API和为什么我们需要这个?
- 5. 为什么我们需要明确调用优化器上的zero_grad()?
- 6. ELF文件 - 什么是部分,为什么我们需要它?
- 7. 为什么Flurry的分析需要android.permission.ACCESS_NETWORK_STATE
- 8. 为什么我们需要.htaccess的worpdress?
- 9. 为什么我们需要弱实体而不是强实体?
- 10. 为什么我们需要的java.sql声明*包
- 11. 为什么我需要追加的形式身体
- 12. DavLockDB:我们需要什么?
- 13. 为什么我们需要DTD和其他地方的“实体”
- 14. 为什么我们需要simple_one_for_one?
- 15. 为什么我们需要TensorFlow tf.Graph?
- 16. 为什么我们需要使用prompt.start()?
- 17. 为什么我们需要scalaz.stream迭代?
- 18. 为什么我们需要WCF
- 19. 为什么我们需要Anaconda 2.7?
- 20. 为什么我们需要编写log.isDebugEnabled?
- 21. 为什么我们需要ng-click?
- 22. 为什么我们需要Control.Lens.Reified?
- 23. 我们为什么需要纤维
- 24. 为什么我们需要org.junit.ComparisonFailure?
- 25. 为什么我们需要addRequestHeader方法?
- 26. 为什么我们需要时代?
- 27. 为什么我们需要ContinueWith方法?
- 28. 为什么我们需要Java NIO Selector?
- 29. 为什么我们需要使用ExitWindowsEx
- 30. 为什么我们需要包装类
是的。您可以在req对象上添加事件来侦听'data'并在'end'上解析它。我曾经这样做,但要做更多的工作。这就是为什么身体分析器派上用场 – lumio
[Body-parser在nodejs中用express来做什么?](https://stackoverflow.com/questions/38306569/what-does-body-parser-do-with- express-in-nodejs) – Li357
@AndrewLi不同意。他们知道自己在这种情况下做了什么,但是想知道您是否必须使用或者有其他方法来执行此操作。你链接的问题想知道'body-parser'是什么。 –