form-data-body
Version:
A tiny, dependency-free node module for generating a form's multipart/form-data body for a POST request.
74 lines (55 loc) • 2.46 kB
Markdown
# form-data-body
[](https://www.npmjs.com/package/form-data-body)
[](https://travis-ci.com/kodie/form-data-body)
[](https://www.npmjs.com/package/form-data-body)
[](https://github.com/standard/standard)
[](license.md)
A tiny, dependency-free node module for generating a form's multipart/form-data body for a POST request.
This is meant to be a simple, no frills module for generating a string to send as the body for a POST request simulating a form submission. If you need something with more bells and whistles, check out the [form-data](https://github.com/form-data/form-data) module.
## Installation
```shell
npm install --save form-data-body
```
## Usage
```js
const formDataBody = require('form-data-body')
// Specify form fields
const fields = {
name: 'My test post',
description: 'This is just a test post',
items: ['First Item', 'Second Item'],
// Files should be an object with the name, type, and data set to strings
image: {
name: 'hello.jpg',
type: 'image/jpeg',
data: binaryImageData
}
}
const boundary = formDataBody.generateBoundary()
const header = {
'Content-Type': `multipart/form-data; boundary=${boundary}`
}
const body = formDataBody(fields, boundary)
```
### Example Response
```
----------------------------071517909670537006900435
Content-Disposition: form-data; name="name"
My test post
----------------------------071517909670537006900435
Content-Disposition: form-data; name="description"
This is just a test post
----------------------------071517909670537006900435
Content-Disposition: form-data; name="items[]"
First Item
----------------------------071517909670537006900435
Content-Disposition: form-data; name="items[]"
Second Item
----------------------------071517909670537006900435
Content-Disposition: form-data; name="image"; filename="hello.jpg"
Content-Type: image/jpeg
[BINARY IMAGE DATA]
----------------------------071517909670537006900435--
```
## License
MIT. See the [LICENSE file](LICENSE.md) for more info.