fastify-method-not-allowed
v1.0.2
Published
Fastify pluging handling method not allowed for routes
Downloads
42
Maintainers
Readme
Fastify Method Not Allowed
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 pathsresponses
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
andallowedMethods
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
Issues
For any issues.
License
MIT License