@moxy/express-ensure-content-type

1.0.1 • Public • Published

express-ensure-content-type

NPM version Downloads Build Status Coverage Status Dependency status Dev Dependency status

Express middleware that ensures requests match the specified content-type.

Installation

$ npm install @moxy/express-ensure-content-type

Usage

const express = require('express');
const bodyParser = require('body-parser');
const ensureContentType = require('@moxy/express-ensure-content-type');

const app = express();

app.post(
    '/',
    bodyParser(),
    ensureContentType('application/json'),
    (req, res, next) => {
        console.log(req.body);
    },
);

API

ensureContentType(contentType, when?)

Creates a middleware that validates a request content-type against contentType.

If the validation fails, next will be called with an Error created with http-errors.

contentType

Type: string | array

One or more content-types to match against. It can be:

  • A file extension name such as json. This name will be returned if matched.
  • A mime type such as application/json.
  • A mime type with a wildcard such as / or /json or application/. The full mime type will be returned if matched.
  • A suffix such as +json. This can be combined with a wildcard such as /vnd+json or application/+json. The full mime type will be returned if matched.

Please check type-is for more information.

options?

Type: object

options.when

Type: string Default: always

When to validate. Can be set to:

  • always - Always validate.
  • body-present - Validate if body is present, that is, when the request has Transfer-Encoding or Content-Length headers.
  • body-not-empty - Same as body-present but skips if Content-Length is explicitly set to 0, as set by some HTTP clients unnecessarily.

Tests

Any parameter passed to the test command is passed down to Jest.

$ npm t
$ npm t -- --watch  # To run watch mode

License

Released under the MIT License.

Package Sidebar

Install

npm i @moxy/express-ensure-content-type

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

6.75 kB

Total Files

4

Last publish

Collaborators

  • tiagodinis
  • moxyhq
  • filipediasf
  • satazor
  • marcooliveira
  • acostalima
  • andregoncalvesdev