Aller au contenu

Middleware Trailing Slash ​

Ce middleware gère la barre oblique finale de l’URL pour les requêtes GET.

appendTrailingSlash redirige vers l’URL à laquelle il a ajouté une barre oblique finale si le contenu n’a pas été trouvé. De son côté, trimTrailingSlash supprime la barre oblique finale.

Importation ​

ts
import { Hono } from 'hono'
import {
  appendTrailingSlash,
  trimTrailingSlash,
} from 'hono/trailing-slash'

Utilisation ​

Exemple de redirection d’une requête GET de /about/me vers /about/me/.

ts
import { Hono } from 'hono'
import { appendTrailingSlash } from 'hono/trailing-slash'

const app = new Hono({ strict: true })

app.use(appendTrailingSlash())
app.get('/about/me/', (c) => c.text('With Trailing Slash'))

Exemple de redirection d’une requête GET de /about/me/ vers /about/me.

ts
import { Hono } from 'hono'
import { trimTrailingSlash } from 'hono/trailing-slash'

const app = new Hono({ strict: true })

app.use(trimTrailingSlash())
app.get('/about/me', (c) => c.text('Without Trailing Slash'))

Options ​

facultatif alwaysRedirect: boolean ​

Par défaut, le middleware Trailing Slash ne redirige que lorsque le statut de la réponse est 404. Lorsque alwaysRedirect vaut true, il redirige avant l’exécution des gestionnaires. Cela est utile pour les routes avec un caractère générique (*), sur lesquelles le comportement par défaut ne fonctionne pas.

ts
const app = new Hono()

app.use(trimTrailingSlash({ alwaysRedirect: true }))
app.get('/my-path/*', (c) => c.text('Wildcard route'))

Cette option est disponible pour trimTrailingSlash et appendTrailingSlash.

facultatif skip: (path: string) => boolean ​

Une fonction qui détermine s’il faut ignorer la redirection selon le chemin de la requête. Si elle renvoie true, la redirection est ignorée. Cela permet d’exclure certains chemins de la redirection, par exemple ceux qui comportent une extension de fichier.

ts
app.use(
  appendTrailingSlash({
    skip: (path) => /\.\w+$/.test(path),
  })
)

Cette option est disponible pour trimTrailingSlash et appendTrailingSlash.

Remarque ​

Le middleware est activé lorsque la méthode de la requête est GET et que le statut de la réponse est 404.

Publié sous licence MIT.