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

NodeJS:将表单数据转发到外部API

夏侯嘉荣
2023-03-14

寻求帮助,以解决我的问题,任何建议感谢!

因此,我使用XHR请求将csv文件作为formdata上传到节点环境:

       var FormData = new FormData();
    var file = input.files[0];
FormData .append("file", file);

接下来,我需要添加授权头并将相同的数据发送到外部API。

我所尝试的:

  • 使用请求模块和'。管道()
  • 使用勤杂工
  • 和axios与form-data
  • 基本上所有这些帖子:1, 2, 3, 4, 5, 6, 7

但是文件发送不正确,服务器以400响应。

限制由于此节点环境基于云,我无法访问任何配置js文件,因此使用express。

谢谢

共有1个答案

孙文康
2023-03-14

使用axios

const axios = require("axios")
const FormData = require("form-data")
const fs = require("fs")

const url = "your.url.com"
const form_data = new FormData()
form_data.append("file", fs.createReadStream(localPath))

const request_config = {
  headers: {
    ...form_data.getHeaders()
  },
  maxContentLength: Infinity,
  maxBodyLength: Infinity,
  auth: { // if auth is needed
    username: USERNAME,
    password: PASSWORD
  }
}

return axios.post(url, form_data, request_config)

希望有帮助

 类似资料:
  • 我正在使用谷歌电子表格和IFTTT做我手机的DB通话记录,这是完美的工作。现在,我正试图通过这个DB调用日志中的API在web页面中填充一个表单。每次IFTTT填充工作表时,我都希望将lastRow发送到我的API。工作表中的第一行填充有标题名称:部门、名、姓、电子邮件、电话、截止日期。 因此,我设法将数据发送到API,如下所示: 现在我需要自动化它,但我不知道如何: > 从表单元格(从lastR

  • 我的问题:有一个简单的超文本标记语言表单,操作="/myController"。我需要将表单数据发送到我的控制器,然后从那里我需要向外部控制器发送另一个POST。 我的Spring控制器看起来像这样: 我需要将表单数据传递给我的控制器,它应该将表单数据进一步发送到“urlPath”并接收响应。我需要操纵这个响应并返回一个结果。我的问题是,如何在不操纵请求的情况下进一步发送表单数据? 提前感谢。

  • 上面的代码摘自这个答案。

  • 我想从React获取文件上传并将其发送到SpringBoot。我试图从React FormData发布,它将包含文件名和XML文件的键值对。因此,当我尝试将FormData发布到后端(即Springboot)时,它返回: 这是我的Springboot控制器: 我已经尝试在Axios post请求的头中指定multipart/form-data,但似乎不起作用。问题出在我的请求里还是出在我的控制器上

  • 我使用Django REST API和Angular 6作为前端。 我在配置文件模型中定义了一个接受文件输入的ImageField。 在angular应用程序中,我从Base64图像数据生成File对象,并发送到endpoint,标题为Content-type:'multipart/form-data' 编辑2:代码 方法正在使用方法发送数据。

  • 我正在尝试使用NodeJS(使用Express)向外部API发出httpget请求,但没有得到任何数据。我的代码是nextone: 但我得到的回应是:状态码:302,身体是空的。 外部API工作正常(我尝试过使用http GET请求并返回数据) 我正在执行的请求需要授权令牌 我做错了什么?或者我能做些什么来找回数据? 干杯