# Method Not Allowed Middleware
The Method Not Allowed middleware returns a `405 Method Not Allowed` response with an `Allow` header when the request path matches a registered route but the request method is not supported. Without this middleware, Hono returns a `404 Not Found` in that case.
## Import
```ts
import { Hono } from 'hono'
import { methodNotAllowed } from 'hono/method-not-allowed'
```
## Usage
```ts
const app = new Hono()
app.use(methodNotAllowed({ app }))
app.get('/hello', (c) => c.text('Hello!'))
app.post('/hello', (c) => c.text('Posted!'))
// PUT /hello -> 405 Method Not Allowed
// Allow: GET, HEAD, POST
```
You can customize the response with the `onMethodNotAllowed` option:
```ts
app.use(
methodNotAllowed({
app,
onMethodNotAllowed: (c, methods) =>
c.json({ error: 'Method Not Allowed' }, 405, {
Allow: methods.join(', '),
}),
})
)
```
## Options
### app: `Hono`
The Hono instance used by the application. The middleware collects the allowed methods for each path from its registered routes.
### onMethodNotAllowed: `(c: Context, allowedMethods: string[]) => Response | Promise`
Generates the response, including its `Allow` header. By default, the middleware returns a `405 Method Not Allowed` response with the `Allow` header set to the allowed methods.