ProMaker Dev
ProMaker Dev

Reputation: 155

send formData POST request with nodejs

I want to send a post request that contain a form data, i want to do that from nodejs to another external api, i don't have the front-end to send the formData, so all i have a javascript object that has keys and values, so how can i do that?, when i tried sending a normal object, i didn't get the right api response, but when i sent it with a POSTMAN client, i got the correct response.

enter image description here

Upvotes: 3

Views: 28262

Answers (2)

Đăng Khoa Đinh
Đăng Khoa Đinh

Reputation: 5411

If you have a correct result in Postman, it's interesting to use the code generator in the same tools to have the desired code :). The button "</>" is on the right bar of the screen.

Here is the code generated from the tool :

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);
});

It's cool, isn't it? One more thing, you have many options from NodeJS to C#, PHP.. :)

enter image description here

Upvotes: 9

Sifat Moonjerin
Sifat Moonjerin

Reputation: 308

So you want to make a post request with nodejs? In order to do so, you can use the axios library and send the data in the following way.

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)
  })

You can install axios using this command.

npm i axios

Upvotes: 0

Related Questions