I want to make a post request in nodejs without browser since it is backend code.

const formdata = new FormData() formdata.append('chartfile', file); 

But above code gives me error as FormData not defined. I am working with ES6.

Anybody, who can let me know how to use the FormData in nodejs?

5 Answers

You can use form-data - npm module. because formData() isn't NodeJS API

Use it this way,

var FormData = require('form-data'); var fs = require('fs'); var form = new FormData(); form.append('my_field', 'my value'); form.append('my_buffer', new Buffer(10)); form.append('my_file', fs.createReadStream('/foo/bar.jpg')); 
12

No need for an npm module, URLSearchParams does the same exact thing!

Original Example

var fs = require('fs'); var form = new URLSearchParams(); form.append('my_field', 'my value'); form.append('my_buffer', new Buffer(10)); form.append('my_file', fs.createReadStream('/foo/bar.jpg')); 

Axios Example

const formData = new URLSearchParams(); formData.append('field1', 'value1'); formData.append('field2', 'value2'); const response = await axios.request({ url: ' method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, data: formData }); 
2

FormData is a part of JS web API (not included in native NodeJS). You can install the form-data package instead.

4

In my opinion the cleanest solution that requires no additional dependencies is:

const formData = new URLSearchParams({ param1: 'this', param2: 'is', param3: 'neat', }) 
0

I would suggest the npm module formdata-node because it's a complete (spec-compliant) FormData implementation for Node.js. It supports both ESM/CJS targets, so EM6 is supported. You can find a few examples at the npm module page.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy