What is append-field?
The append-field npm package is designed to facilitate the manipulation of form data, specifically for appending fields to an existing FormData instance. It is particularly useful in scenarios where you need to dynamically add fields to FormData before submitting it, such as in file uploads or when dealing with complex form structures.
What are append-field's main functionalities?
Appending fields to FormData
This feature allows you to append a new field to an existing FormData object. The code sample demonstrates how to append a simple key-value pair to FormData.
const appendField = require('append-field');
let formData = new FormData();
appendField(formData, 'key', 'value');
Appending nested fields to FormData
This feature enables appending nested fields to FormData, which is useful for representing complex data structures. The code sample shows how to append nested fields to represent a user's name and email.
const appendField = require('append-field');
let formData = new FormData();
appendField(formData, 'user[name]', 'John Doe');
appendField(formData, 'user[email]', 'john@example.com');
Other packages similar to append-field
form-data
The form-data package is similar to append-field in that it is used to create and manipulate FormData objects. However, form-data provides a broader set of functionalities for handling FormData, including the ability to directly append files and streams, making it more suitable for file uploads.
formidable
Formidable is another package that deals with form data but from a different angle. It is primarily focused on parsing incoming form data, especially file uploads. While append-field is about appending data to FormData, formidable excels in extracting and processing data from incoming forms.
append-field
A W3C HTML JSON forms spec compliant
field appender (for lack of a better name). Useful for people implementing
application/x-www-form-urlencoded
and multipart/form-data
parsers.
It works best on objects created with Object.create(null)
. Otherwise it might
conflict with variables from the prototype (e.g. hasOwnProperty
).
Installation
npm install --save append-field
Usage
import appendField from 'append-field'
const obj = Object.create(null)
appendField(obj, 'pets[0][species]', 'Dahut')
appendField(obj, 'pets[0][name]', 'Hypatia')
appendField(obj, 'pets[1][species]', 'Felis Stultus')
appendField(obj, 'pets[1][name]', 'Billie')
console.log(obj)
{ pets:
[ { species: 'Dahut', name: 'Hypatia' },
{ species: 'Felis Stultus', name: 'Billie' } ] }
API
appendField(store, key, value)
store
(object
, required)key
(string
, required)value
(any
, required)
Adds the field named key
with the value value
to the object store
.
License
MIT