簡體   English   中英

為什么在 Node.js 中使用郵遞員上傳文件時請求正文為空

[英]Why request body is null in file upload with postman in Node.js

我正在嘗試將文件從郵遞員上傳到 Node.js 服務器。 我正在使用 multer 和 body-parse 來解析請求的正文。

用例:

  1. 當我在 Postman 中使用帶有原始 JSON 的 POST 請求作為正文時,一切正常,我可以看到與 Postman 中提供的完全相同的 req.body,並且我還可以為 req.body 分配新的鍵值對,以便這些新的變量可以在路由中的其他中間件中使用。
  2. 但是當我嘗試從郵遞員上傳文件時,表單數據作為郵遞員中的正文,那么我仍然可以從 req.body 中獲取所提供的值。 但是在multer中間層之后,新分配給req.body(來自中間件)的值顯示損壞,如req.body變成[Object: nullprototype]。 我可以確認 Multer 工作正常,但 Multer 正在破壞 req.body 數據(它是在路由中間件本身中創建的)

請幫忙識別req.body=[Object: nullprototype]的含義

我遇到了類似的問題。 如果在功能中使用console.log(req.body)。 您會注意到該主體等於[Object:null prototype],因為Multer正在處理請求,因為表單是多部分的。 因此,如果您使用console.log(req)對象,則可以找到可以檢索的值,並且只需執行req。{Name_of_field}即可獲取值。

如果您需要澄清,請告訴我,我也許可以共享代碼。

Shivam Mahajan撰寫了幾乎所有內容,但:

您可以訪問文本字段,而不是req.{Name_of_field}中的文本字段,而是req.body.{Name_of_field}中的文本字段,如multer docs中所述。

您可以使用 express busboy 將這些添加到您的主頁

const expressBusboy = require('express-busboy');

expressBusboy.extend(app);

這將解析您的表單數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM