使用 nodejs 发送 formData POST 请求

时间:2021-05-26 16:24:17

标签: node.js axios fetch multipartform-data form-data

我想发送一个包含表单数据的 post 请求,我想从 nodejs 到另一个外部 api,我没有发送 formData 的前端,所以我只有一个 javascript 对象有键和值,那么我该怎么做?,当我尝试发送一个普通对象时,我没有得到正确的 api 响应,但是当我用 POSTMAN 客户端发送它时,我得到了正确的响应。

enter image description here

2 个答案:

答案 0 :(得分:2)

如果您在 Postman 中得到了正确的结果,那么在相同的工具中使用 代码生成器 来获得所需的代码会很有趣:)。按钮“”位于屏幕右侧。

这是从工具生成的代码:

var axios = require('axios');
var FormData = require('form-data');
var data = new FormData();
data.append('data', 'asldkfjalsdkjf');

var config = {
  method: 'post',
  url: 'https://some-domain.com/formdata',
  headers: { 
    ...data.getHeaders()
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

很酷,不是吗? 还有一件事,你有很多选择,从 NodeJS 到 C#、PHP.. :)

enter image description here

答案 1 :(得分:0)

所以你想用 nodejs 做一个 post 请求?为此,您可以使用 axios 库并按以下方式发送数据。

const axios = require('axios');

let formData = new FormData();
formData.append('x': 'some test data');

axios({
  method: 'post',
  url: 'https://stackoverflow.com/posts/67709177',
  data: formData,
  headers: { 'Content-Type': 'multipart/form-data' },
})
  .then(res => {
    console.log(`statusCode: ${res.statusCode}`)
    console.log(res)
  })
  .catch(error => {
    console.error(error)
  })

您可以使用此命令安装 axios。

npm i axios