使用 nodejs 发送 formData POST 请求

send formData POST request with nodejs

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

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

const axios = require('axios');

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

axios({
  method: 'post',
  url: 'https://whosebug.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

如果您在 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.. :)