# hono-middleware

Скилл с паттернами middleware для Hono: создание, композиция, встроенные модули и порядок выполнения. Пригодится, когда в приложение нужно добавить авторизацию, CORS или логирование.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 431 установка · ★ 78
- Автор: bobmatnyc
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/bobmatnyc/claude-mpm-skills/tree/HEAD/toolchains/javascript/frameworks/hono/hono-middleware/SKILL.md
- Обновлён: 2026-07-18
- HTML: https://affpapa.org/nevibecode/skills/hono-middleware

## Что делает

Скилл описывает систему middleware в Hono и её «луковую» модель: middleware обрабатывает запрос до хендлера, а ответ — после. Внутри разобраны inline-middleware, привязка к путям через `app.use('*', ...)` и `app.use('/api/*', ...)`, а также переиспользуемые middleware через `createMiddleware` из `hono/factory`.

Отдельный блок — контекстные переменные. Типы объявляются в `new Hono<{ Variables: Variables }>()`, значения кладутся через `c.set('user', user)` и читаются в хендлере через `c.get('user')`. Так авторизация передаёт пользователя дальше по цепочке, не теряя типизацию.

Из встроенных модулей в тексте есть `cors`, `bearerAuth`, `basicAuth`, `jwt`, `logger`, `prettyJSON`, `compress`, `etag` и `cache`. Для `jwt` и `bearerAuth` секрет или токен передаётся прямо в конфигурации, поэтому такие значения стоит держать в переменных окружения. Учтите: пример с `cache` в исходнике обрывается на середине, так что по кэшированию полного описания там нет.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add bobmatnyc/claude-mpm-skills --skill hono-middleware -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/hono-middleware/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/hono-middleware/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add bobmatnyc/claude-mpm-skills --skill hono-middleware -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/hono-middleware/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add bobmatnyc/claude-mpm-skills --skill hono-middleware -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/hono-middleware/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install bobmatnyc/claude-mpm-skills hono-middleware
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/hono-middleware/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add bobmatnyc/claude-mpm-skills --skill hono-middleware -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/bobmatnyc/claude-mpm-skills --path toolchains/javascript/frameworks/hono/hono-middleware
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/hono-middleware/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add bobmatnyc/claude-mpm-skills --skill hono-middleware -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/bobmatnyc/claude-mpm-skills/tree/HEAD/toolchains/javascript/frameworks/hono/hono-middleware/SKILL.md

## Когда брать
- добавить проверку JWT на все маршруты `/api/*`
- настроить CORS с белым списком доменов и credentials
- прокинуть пользователя из auth-middleware в хендлер без потери типов
- замерить время ответа и отдать его в заголовке
- включить gzip и ETag для статики

## Примеры запросов агенту
- покажи, как повесить jwt-middleware на /api/* и достать payload в хендлере
- сделай переиспользуемый middleware для логирования через createMiddleware
- объясни порядок выполнения трёх middleware и хендлера в Hono

## Похожие
- [bun-hono-integration](https://affpapa.org/nevibecode/skills/bun-hono-integration.md) — скилл · 452 установки
- [hono-typescript](https://affpapa.org/nevibecode/skills/hono-typescript.md) — скилл · 819 установок
- [inngest-middleware](https://affpapa.org/nevibecode/skills/inngest-middleware.md) — скилл · 3600 установок
- [routing-middleware](https://affpapa.org/nevibecode/skills/routing-middleware.md) — скилл · 6 установок
- [hono](https://affpapa.org/nevibecode/skills/honojs-hono.md) — скилл · 2900 установок
- [hono-api-scaffolder](https://affpapa.org/nevibecode/skills/hono-api-scaffolder.md) — скилл · 1600 установок

Из того же набора: [bobmatnyc/claude-mpm-skills](https://affpapa.org/nevibecode/by/bobmatnyc/claude-mpm-skills.md) — 65 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
