/Knowledge/sources/honojs__hono/llms-full/middleware--45957f1e12ab.md
Middleware - hono-docs
Middleware Source evidence: /Sources/honojs hono/provenance.md Canonical citation: https://hono.dev/llms full.txt middleware Summary We call the primitive th...
Middleware
Source evidence: /Sources/honojs__hono/provenance.md Canonical citation: https://hono.dev/llms-full.txt#middleware
Summary
We call the primitive that returns Response as "Handler". "Middleware" is executed before and after the Handler and handles the Request and Response. It's like an onion structure. For example, we can write th...
Content
We call the primitive that returns Response as "Handler".
"Middleware" is executed before and after the Handler and handles the Request and Response.
It's like an onion structure.
For example, we can write the middleware to add the "X-Response-Time" header as follows.
import { Hono } from 'hono'
const app = new Hono()
// ---cut---
app.use(async (c, next) => {
const start = performance.now()
await next()
const end = performance.now()
c.res.headers.set('X-Response-Time', `${end - start}`)
})
With this simple method, we can write our own custom middleware and we can use the built-in or third party middleware.
Metadata
{
"chunk_index": 0,
"citation": "https://hono.dev/llms-full.txt#middleware",
"coverage_role": "overview",
"qualified_title": "Hono / llms-full / Middleware",
"retrieved_at": "2026-07-02T05:51:01Z",
"section_index": 549,
"source_id": "/honojs/hono",
"source_type": "llms_full",
"target_label": "llms-full",
"title": "Middleware",
"upstream_url": "https://hono.dev/llms-full.txt",
"version": "2026"
}