2017-07-24 79 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,但如果有一個不同的模塊以您喜歡的方式解析身體,您可以隨時使用它。

相關問題