Nupital Pomp Mesmerises

    fastify-method-not-allowed
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.2 • Public • Published

    Fastify Method Not Allowed

    js-semistandard-style Build Status

    fastify-method-not-allowed is a plugin for returning 405 status code for routes instead of default 404.

    Note you have to register this plugin before registering any routes, as it uses onRoute hook, so needs to "collect" them.

    Install

    npm install fastify-method-not-allowed

    Usage

    Require the module and just register it as any other fastify plugin.

    const methodNotAllowed = require('fastify-method-not-allowed');
     
    server.register(methodNotAllowed);
     
    server.get('/', (req, res) => res.send('Hello World'));
     
    fastify.listen(3000);
     
    /*
    curl -X POST localhost:3000
     
    This will return statusCode 405 instead of the 404 default response
    */

    API

    register plugin

    const methodNotAllowed = require('fastify-method-not-allowed');
     
    server.register(methodNotAllowed, {
        responses: {
            404: 'Not Found',
            405: 'Method Not Allowed',
        },
    });

    register options

    • prefix: prefix on which path this plugin will be enabled
      You can register the plugin multiple times with different prefixes if you want to apply different responses on different paths

    • responses
      Default values

      • 404
      {
          "message": "Route <method>:<url> not found",
          "error": "Not Found",
          "statusCode": 404
      }
      • 405
      {
          "message": "Route <method>:<url> not allowed",
          "error": "Method Not Allowed",
          "statusCode": 405
      }

      You can override those values by providing either a value or a function.

      • For 404 you have access to the request object so you can pass a function e.g. (req)=>"Route${req.url}not found".
      • For 405 you have access to the request and allowedMethods so you can pass a function e.g. (req,methods)=>"Route${req.url}allowed only ${methods}".
    • setNotFoundHandlerOptions You can pass options to fastify handler. For more information.

    Typescript

    In order to use this plugin you need to enable the flag "esModuleInterop": true in tsconfig.json.

    then you can import it

    import methodNotAllowed from 'fastify-method-not-allowed';

    Note:

    This plugin uses the setNotFoundHandler handler so you won't be able to re-use this handler in your own service at least with the same prefix.

    Changelog

    CHANGELOG.md

    Issues

    For any issues.

    License

    MIT License

    Install

    npm i fastify-method-not-allowed

    DownloadsWeekly Downloads

    0

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    9.09 kB

    Total Files

    7

    Last publish

    Collaborators

    • gkampitakis