Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork21.8k
Add methodNotAllowedCatcher Middleware and Example#6836
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:master
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
bjohansebas left a comment• edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Thanks for your contribution. Please don’t make aesthetic changes, and could you explain better why you’re adding this function?
I think this is something Express shouldn’t include, In any case, it would go in the router. I haven’t looked into the issue in depth yet, so I can’t give an opinion for now, but if you want to move forward, it would be best to open the PR in the router repository, and without aesthetic changes.
NalinDalal commentedOct 12, 2025
Thank you for the feedback and for referencing the history in#2414 . I understand that making 405 handling automatic in This example provides a reusable, opt-in middleware for 405 responses with the correct Allow header, so users can easily add this behavior to their routes without changes to Express core. If you’d prefer, I’m happy to move this to the router repo or publish it as a standalone utility. Please let me know how you’d like to proceed, or if you have any other suggestions! |
shubhanshu2103 commentedNov 5, 2025
Please assign this to me. |
Summary
This PR introduces a helper middleware,
methodNotAllowedCatcher, to Express. This middleware allows users to easily send a 405 Method Not Allowed response with the correctAllowheader for unsupported HTTP methods on a route. It is exposed via the main Express export for convenience. An example usage is also provided.Changes
lib/methodNotAllowedCatcher.js— Helper middleware to send 405 and set the Allow header.express.methodNotAllowedCatcherinlib/express.js.examples/method-not-allowed/index.jsto demonstrate usage.resolves issue#2414
Usage
Example
Run the example:
Test with curl:
Motivation
This addresses the long-standing feature request for an easy, opt-in way to handle 405 responses for routes defined with
.route(). It is non-breaking and fully opt-in.Related Issues
Checklist
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.