Noncommital Premarital Mischief

    allow-methods

    4.1.1 • Public • Published

    Allow-Methods

    Express/connect middleware to handle 405 errors, when a request method is not supported by your route or application.

    Table of Contents

    Requirements

    This library requires the following to run:

    Usage

    Install with npm:

    npm install allow-methods

    Load the library into your code with a require call:

    const allowMethods = require('allow-methods');

    allowMethods will return a middleware function that will error if the request method does not match one of the allowed methods. The error will have message and status properties which you can use.

    It accepts two arguments. Firstly, an array of allowed methods:

    allowMethods(['get', 'head', 'post']);

    Secondly (optionally) a message which will be used in the error if the request message does not match:

    allowMethods(['get', 'head'], 'Unsupported method');

    Route-level

    const express = require('express');
    const app = express();
    
    app
        .route('/example')
        // Only requests with a GET/HEAD method will continue
        .all(allowMethods(['get', 'head']))
        // Define GET handler
        .get(function () { ... });

    If you want to do something useful with the error, for example output a sensible JSON response, you will need to define an error handler for your application (after the route definition):

    app.use(function (error, requst, response, next) {
        response.status(error.status || 500).send({
            message: error.message
        });
    });

    Application-level

    const express = require('express');
    const app = express();
    
    // Only allow GET/HEAD methods across the entire application
    app.use(allowMethods(['get', 'head']));

    Contributing

    The contributing guide is available here. All contributors must follow this library's code of conduct.

    License

    Licensed under the MIT license.
    Copyright © 2015, Rowan Manning

    Install

    npm i allow-methods

    DownloadsWeekly Downloads

    234

    Version

    4.1.1

    License

    MIT

    Unpacked Size

    6.81 kB

    Total Files

    5

    Last publish

    Collaborators

    • rowanmanning