express-multipart-form-data-process
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.1 • Public • Published

    npm version

    express-multipart-form-data-process

    A Node.js module that processes data with a multipart / form-data content type and can therefore be used in Microservices and Cloud Functions.

    Installation

    npm install express-multipart-form-data-process --save
    yarn add express-multipart-form-data-process

    Multipart File Parser

    Usage default

    You can simply add to your service:

    const express = require('express');
    const multipartFileParser = require('express-multipart-form-data-process');
    
    const app = express();
    
    app.use(multipartFileParser)
    ...
    app.post('/', (req, res) => {
      const data = {
        files: req.files,
        ...req.body,
      }
      ...
    })

    Usage with options

    You can add options to your service as follows:

    const express = require('express');
    const { multipartFileParser } = require('express-multipart-form-data-process');
    
    const app = express();
    
    app.use(multipartFileParser({
      fileOptions: {
        allowedMimesTypes: ['image/jpeg', 'image/png', 'application/pdf', ...]
      },
      busboyOptions: {
        ... // See the options at https://github.com/mscdex/busboy#busboy-methods
      }
    }))
    ...
    app.post('/', (req, res) => {
      const data = {
        files: req.files,
        ...req.body,
      }
      ...
    })

    Options

    • fileOptions

      • allowedMimesTypes - [string] - The MIME type is a standard identifier used on the Internet to indicate the type of data a file contains.
    • busboyOptions

      • See the options below in busboy

      • The constructor takes the following valid config settings:

        • headers - object - These are the HTTP headers of the incoming request, which are used by individual parsers.

        • highWaterMark - integer - highWaterMark to use for this Busboy instance (Default: WritableStream default).

        • fileHwm - integer - highWaterMark to use for file streams (Default: ReadableStream default).

        • defCharset - string - Default character set to use when one isn't defined (Default: 'utf8').

        • preservePath - boolean - If paths in the multipart 'filename' field shall be preserved. (Default: false)

        • limits - object - Various limits on incoming data. Valid properties are:

          • fieldNameSize - integer - Max field name size (in bytes) (Default: 100 bytes)

          • fieldSize - integer - Max field value size (in bytes) (Default: 1MB)

          • fields - integer - Max number of non-file fields (Default: Infinity)

          • fileSize - integer - For multipart forms, the max file size (in bytes) (Default: Infinity)

          • files - integer - For multipart forms, the max number of file fields (Default: Infinity)

          • parts - integer - For multipart forms, the max number of parts (fields + files) (Default: Infinity)

          • headerPairs - integer - For multipart forms, the max number of header key=>value pairs to parse Default: 2000 * **(**same as node's http)

      • The constructor can throw errors:

        • Unsupported content type: $type - The Content-Type isn't one Busboy can parse

        • Missing Content-Type - The provided headers don't include Content-Type at all.

    Install

    npm i express-multipart-form-data-process

    DownloadsWeekly Downloads

    7

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    18 kB

    Total Files

    7

    Last publish

    Collaborators

    • amarcosos