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
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/.
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.
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.
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.
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.