Aller au contenu

Middleware Method Override ​

Selon la valeur d’un champ de formulaire, d’un en-tête ou d’un paramètre de requête, ce middleware exécute le gestionnaire de la méthode spécifiée, qui diffère de la méthode réelle de la requête, puis renvoie sa réponse.

Importation ​

ts
import { Hono } from 'hono'
import { methodOverride } from 'hono/method-override'

Utilisation ​

ts
const app = new Hono()

// If no options are specified, the value of `_method` in the form,
// e.g. DELETE, is used as the method.
app.use('/posts', methodOverride({ app }))

app.delete('/posts', (c) => {
  // ....
})

Exemple ​

Les formulaires HTML ne peuvent pas envoyer de requête avec la méthode DELETE. Vous pouvez donc placer la valeur DELETE dans la propriété nommée _method et l’envoyer. Le gestionnaire de app.delete() sera alors exécuté.

Le formulaire HTML :

html
<form action="/posts" method="POST">
  <input type="hidden" name="_method" value="DELETE" />
  <input type="text" name="id" />
</form>

L’application :

ts
import { methodOverride } from 'hono/method-override'

const app = new Hono()
app.use('/posts', methodOverride({ app }))

app.delete('/posts', () => {
  // ...
})

Vous pouvez modifier les valeurs par défaut ou utiliser la valeur d’un en-tête ou d’un paramètre de requête :

ts
app.use('/posts', methodOverride({ app, form: '_custom_name' }))
app.use(
  '/posts',
  methodOverride({ app, header: 'X-METHOD-OVERRIDE' })
)
app.use('/posts', methodOverride({ app, query: '_method' }))

Options ​

obligatoire app: Hono ​

L’instance de Hono utilisée dans votre application.

facultatif form: string ​

La clé du champ de formulaire dont la valeur contient le nom de la méthode. La valeur par défaut est _method.

facultatif header: boolean ​

Le nom de l’en-tête dont la valeur contient le nom de la méthode.

facultatif query: boolean ​

La clé du paramètre de requête dont la valeur contient le nom de la méthode.

Publié sous licence MIT.