@multipart/form
@multipart/form is A Node.JS Class To Create Multipart/Form-Data Requests With Files and Fields.
yarn add @multipart/form
npm install @multipart/form
Table Of Contents
API
The package is available by importing its default class:
import Form from '@multipart/form'
class Form
The form class maintains an internal buffer with data that can be sent in a multipart/form-data request. It can append fields and files, and when a file path is given, it will be read from the file system and its contents will be added to the form data.
Form: Accumulates data in fields and returns the complete body.
| Name | Type & Description |
|---|---|
| constructor | new (config: !FormConfig) => Form |
| Creates a new form instance that maintains a buffer of key-value pairs and files separated by a boundary. | |
| buffer | !Buffer |
| The data to send. | |
| data | string |
The data to send as utf-8 string. Concatenates the buffer data with \r\n and adds the final --{boundary}-- to the returned string.
|
|
| addFile | (path: string, name: string, options?: !AddFileOptions) => void |
| Reads and adds the file to the request buffer. | |
| addSection | (key: string, value: (!Buffer | string)) => void |
| Adds a key-value pair to the form. |
FormConfig: Options for the constructor.
| Name | Type | Description | Default |
|---|---|---|---|
| boundary | string | The hard-coded boundary for the requests. | u2KxIV5yF1y+xUspOQCCZopaVgeV6Jxihv35XQJmuTx8X3sh |
AddFileOptions: Options for adding files.
| Name | Type | Description | Default |
|---|---|---|---|
| type | string | The Content-Type description. | application/octet-stream |
| noCache | boolean | Whether to not cache read files. | false |
| filename | string | The filename property for Content-Disposition description. By default, will be same as the path argument. |
- |
import Form from '@multipart/form'
(async () => {
const form = new Form()
await form.addFile(`test/fixture/test.txt`, 'file')
form.addSection('hello', 'world')
console.log(form.data)
})()
--u2KxIV5yF1y+xUspOQCCZopaVgeV6Jxihv35XQJmuTx8X3sh
Content-Disposition: form-data; name="file"; filename="test/fixture/test.txt"
Content-Type: application/octet-stream
a test file
--u2KxIV5yF1y+xUspOQCCZopaVgeV6Jxihv35XQJmuTx8X3sh
Content-Disposition: form-data; name="hello"
world
--u2KxIV5yF1y+xUspOQCCZopaVgeV6Jxihv35XQJmuTx8X3sh--
Copyright & License
GNU Affero General Public License v3.0
|
© Art Deco for Idio 2019 |
|
|
Tech Nation Visa Sucks |
|---|