当前位置: 首页 > 知识库问答 >
问题:

为什么在节点中有邮递员的文件上载中请求正文为空。js

司空俊雄
2023-03-14

我正在尝试将文件从邮递员上传到节点。js服务器。我使用multer和body parse来解析请求的主体。

用例:

  1. 当我在Postman中使用带有raw-JSON作为Body的POST请求时,一切正常,我可以完全按照Postman中提供的那样看到req.body,也可以将新的键值对分配给req.body,以便这些新变量可以在路由中的进一步中间件中使用。
  2. 但是当我尝试从邮递员上传一个带有form-data作为Body in Postman的文件时,那么我仍然可以从提供的req.body中获取值。但是在multer中间层之后,新分配给req.body的值(来自中间件)显示损坏,就像req.body变成[Object: null原型]一样。我可以确认Multer工作正常,但Multer正在损坏req.body数据(这是在路由中间件本身中创建的)

请帮助确定req的含义。body=[对象:空原型]

共有3个答案

卜高超
2023-03-14

您可以使用快速巴士服务。将以下内容添加到主页:

const expressBusboy = require('express-busboy');
expressBusboy.extend(app);

这将解析您的表单数据。

贡念
2023-03-14

Shivam Mahajan写得差不多,但是:

您可以访问req中没有的文本字段。{Name_of_field},但是req。身体{Name_of_field},如multer docs所述。

沈实
2023-03-14

我遇到了一个类似的问题。如果你在函数中console.log(req.body)。你会注意到body等于[Object: null原型],因为Multer正在处理请求,因为表单是multipart。所以,如果你console.log(req)对象,你可以找到可以检索的值,你可以只做req。{Name_of_field}来获取值。

如果你需要澄清,请让我知道,我可能可以分享代码。

 类似资料:
  • 我有一个 POST 请求,用于验证请求正文中的文本/csv 文件。请求在邮递员中成功运行:返回 HTTP 代码 200。Postman 控制台中的请求正文填充了文件路径和名称,即 src:“/Users/username/Downloads/demo_file.csv”,但是当导出集合时,请求中的文件值为空。见下文。 问题。为什么它是空的,这是一个错误/已知问题吗? 作为一个快速测试,我将文件添加

  • 我有一个邮递员预请求脚本添加一个HMAC密钥到一个请求。除非身体中有一个环境变量,否则这种方法很有效。所以如果我有下面的身体 当发送请求时将键值设置为sample时,正文包含以下内容 这是我所期望的。但是,在访问预请求脚本中的请求正文时, 我得到以下信息 我怎样才能获得变量被替换的主体,以便它是将被发送到服务器的内容?

  • 我使用以下代码将json对象发布到php服务器: 并使用它在php中接收对象: 问题是,$body总是空的,我用FIDDLER检查我的HTTP请求,它作为原始数据存在:{“tag”:“jsonParams”}那么我搞砸了什么?thx提前。

  • 所以我使用postman,我有一个可以发送POST请求的URL,正文中有一个json,其中键是“优惠券”,值是某个数字。 我想让邮递员从不同的地方得到不同的答案。 我试着在《邮递员》中读到跑步者的故事,我想我可以建立一个包含优惠券所有号码的数据文件。 如何用文件数据中的数字替换post请求中的值? 我试着给这个值加一个不同的数字,发送它,并得到每个数字的响应。 这儿呢 谢谢你!

  • 2FE552B7-53B1-4E4A-AFFF-3AEF8FE9D05B-----WebKitFormBoundaryLH8FJWGYEEVTCJMA内容-配置:表单-数据;name=“sample test file.pdf”;filename=“sample test file.pdf”content-type:application/pdf

  • 我有一个带有更新方法的控制器。该方法应在RequestBody中获取产品,但这会导致请求错误。我和邮递员一起发了一封邮件。JSON作为原始JSON发送,请求内容类型为application/JSON。 正文中的JSON是 请求响应不良的原因是什么?JSON似乎格式化正确,当没有正文时调用更新方法。