All Projects → yahoo → express-busboy

yahoo / express-busboy

Licence: BSD-3-Clause license
A simple body-parser like module for express that uses connect-busboy under the hood.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to express-busboy

HackTheBox-Writeups
No description or website provided.
Stars: ✭ 94 (+108.89%)
Mutual labels:  active
active-state
Laravel Active State Url Helper For Request
Stars: ✭ 45 (+0%)
Mutual labels:  active
activecampaign-python
ActiveCampaign API wrapper written in python.
Stars: ✭ 25 (-44.44%)
Mutual labels:  active
SpliceHack
An in-progress nethack variant based on version 3.7. An attempt to build a "kitchen sink" style variant that is easy to pick up and play.
Stars: ✭ 25 (-44.44%)
Mutual labels:  active
jquery-scrollwatch
jQuery plugin for determining active sections on the page based on scrolling
Stars: ✭ 18 (-60%)
Mutual labels:  active
zoom-drive-connector
Automatically uploads Zoom meeting recordings to Google Drive.
Stars: ✭ 25 (-44.44%)
Mutual labels:  active
federalist.18f.gov
Homepage for the Federalist platform
Stars: ✭ 28 (-37.78%)
Mutual labels:  active
AttackingAD
This repo will contain slides and information from the Attacking Active Directory Hacking Series talks presented at SecKC.
Stars: ✭ 32 (-28.89%)
Mutual labels:  active

express-busboy npm version Build Status

A simple body-parser like module for express that uses connect-busboy under the hood.

It's designed to be more of a "drop in" replacement for body-parser. With it populating req.body, there is very minimal code change needed to use it.

usage

import bb from 'express-busboy';
const app = express();

bb.extend(app);

The module will populate req.body and req.files like the body-parser module does.

configuration

bb.extend(app, {
    //options can go here
});

By default this module will create an Array when it finds multiple fields with the same name in the POST parameters. You can set restrictMultiple to true to not parse mutiple POST values into Array's

file uploads

By default file uploads are disabled, the req.files object will always be empty. You can activate them with:

bb.extend(app, {
    upload: true,
    path: '/path/to/save/files',
    allowedPath: /./
});

path will default to: os.tmpdir()/express-busboy/<uuid>/<the field name>/<filename>.

allowedPath can contain a regular expression limiting the upload function to given urls. For example /^\/upload$/ would only allow uploads in the /upload path.

You can have a function returning true/false if you prefer that:

options.allowedPath = function(url) {
    return url == '/upload';
}

You can restrict uploads to specific mimetypes as well:

options.mimeTypeLimit = [
    'text/x-markdown',
    'application/javascript',
    'image/jpeg',
    'image/png'
];

Name and filename inputs will be sanitized before determining path for the file on disk. If you want to change this behavior you can provide a strip function of your own:

// this will not sanitize the inputs
options.strip = function(value, type) {
    return value;
}

When files are not uploaded due to path or mimetype checks, no error is returned (so the other data in the request can be handled) the restricted item will simply not appear in the req.files Object.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].