/Knowledge/sources/honojs__hono/llms-full/routing-routing-priority--1c47057386a6.md
Routing: Routing priority - hono-docs
Routing: Routing priority Source evidence: /Sources/honojs hono/provenance.md Canonical citation: https://hono.dev/llms full.txt routing priority Summary Han...
Routing: Routing priority
Source evidence: /Sources/honojs__hono/provenance.md Canonical citation: https://hono.dev/llms-full.txt#routing-priority
Summary
Handlers or middleware will be executed in registration order. ```ts twoslash import { Hono } from 'hono' const app = new Hono() // ---cut--- app.get('/book/a', (c) => c.text('a')) // a app.get('/book/:slug', (c) => c.text('common')) //...
Content
Handlers or middleware will be executed in registration order.
import { Hono } from 'hono'
const app = new Hono()
// ---cut---
app.get('/book/a', (c) => c.text('a')) // a
app.get('/book/:slug', (c) => c.text('common')) // common
GET /book/a ---> `a`
GET /book/b ---> `common`
When a handler is executed, the process will be stopped.
import { Hono } from 'hono'
const app = new Hono()
// ---cut---
app.get('*', (c) => c.text('common')) // common
app.get('/foo', (c) => c.text('foo')) // foo
GET /foo ---> `common` // foo will not be dispatched
If you have the middleware that you want to execute, write the code above the handler.
import { Hono } from 'hono'
import { logger } from 'hono/logger'
const app = new Hono()
// ---cut---
app.use(logger())
app.get('/foo', (c) => c.text('foo'))
Metadata
{
"chunk_index": 0,
"citation": "https://hono.dev/llms-full.txt#routing-priority",
"coverage_role": "overview",
"qualified_title": "Hono / llms-full / Routing > Routing priority (1)",
"retrieved_at": "2026-07-02T05:51:01Z",
"section_index": 603,
"source_id": "/honojs/hono",
"source_type": "llms_full",
"target_label": "llms-full",
"title": "Routing: Routing priority",
"upstream_url": "https://hono.dev/llms-full.txt",
"version": "2026"
}