3

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

2 Answers 2

9

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

Sign up to request clarification or add additional context in comments.

Comments

0

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

3 Comments

the problem is, how do get the "x: 'some test data'" to be of type FormData, because apparently when i sent a normal object, the api responsded with "please provide a formData", and when i used postman to do that, it worked
You need to create a FormData object for that. I've updated my answer.
Bro you have syntax error

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.