我遇到了很多博客和文章,他們建議使用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'是什麼。 –