Utilitaire Route
L’utilitaire Route fournit des informations de routage détaillées pour le débogage et le développement de middlewares. Il permet d’accéder aux détails des routes correspondantes et de la route en cours de traitement.
Importation
import { Hono } from 'hono'
import {
matchedRoutes,
routePath,
baseRoutePath,
basePath,
} from 'hono/route'Utilisation
Informations de base sur les routes
const app = new Hono()
app.get('/posts/:id', (c) => {
const currentPath = routePath(c) // '/posts/:id'
const routes = matchedRoutes(c) // Array of matched routes
return c.json({
path: currentPath,
totalRoutes: routes.length,
})
})Utilisation avec des sous-applications
const app = new Hono()
const apiApp = new Hono()
apiApp.get('/posts/:id', (c) => {
return c.json({
routePath: routePath(c), // '/posts/:id'
baseRoutePath: baseRoutePath(c), // '/api'
basePath: basePath(c), // '/api' (with actual params)
})
})
app.route('/api', apiApp)matchedRoutes()
Renvoie un tableau de toutes les routes correspondant à la requête actuelle, y compris les middlewares.
app.all('/api/*', (c, next) => {
console.log('API middleware')
return next()
})
app.get('/api/users/:id', (c) => {
const routes = matchedRoutes(c)
// Returns: [
// { method: 'ALL', path: '/api/*', handler: [Function] },
// { method: 'GET', path: '/api/users/:id', handler: [Function] }
// ]
return c.json({ routes: routes.length })
})routePath()
Renvoie le motif de chemin de route enregistré pour le gestionnaire actuel.
app.get('/posts/:id', (c) => {
console.log(routePath(c)) // '/posts/:id'
return c.text('Post details')
})Utilisation avec un paramètre d’index
Vous pouvez passer un paramètre d’index facultatif pour obtenir le chemin de route à une position précise, comme avec Array.prototype.at().
app.all('/api/*', (c, next) => {
return next()
})
app.get('/api/users/:id', (c) => {
console.log(routePath(c, 0)) // '/api/*' (first matched route)
console.log(routePath(c, -1)) // '/api/users/:id' (last matched route)
return c.text('User details')
})baseRoutePath()
Renvoie le motif du chemin de base de la route actuelle, tel qu’il est défini dans le routage.
const subApp = new Hono()
subApp.get('/posts/:id', (c) => {
return c.text(baseRoutePath(c)) // '/:sub'
})
app.route('/:sub', subApp)Utilisation avec un paramètre d’index
Vous pouvez passer un paramètre d’index facultatif pour obtenir le chemin de base de la route à une position précise, comme avec Array.prototype.at().
app.all('/api/*', (c, next) => {
return next()
})
const subApp = new Hono()
subApp.get('/users/:id', (c) => {
console.log(baseRoutePath(c, 0)) // '/' (first matched route)
console.log(baseRoutePath(c, -1)) // '/api' (last matched route)
return c.text('User details')
})
app.route('/api', subApp)basePath()
Renvoie le chemin de base avec les paramètres résolus à partir de la requête réelle.
const subApp = new Hono()
subApp.get('/posts/:id', (c) => {
return c.text(basePath(c)) // '/api' (for request to '/api/posts/123')
})
app.route('/:sub', subApp)