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 = ; server; server; fastify; /*curl -X POST localhost:3000 This will return statusCode 405 instead of the 404 default response*/
API
register plugin
const methodNotAllowed = ; server;
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
- 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
;
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