Honoとは
HonoはWeb StandardsのRequest、Response、Fetch APIを軸にしたWebフレームワークです。Cloudflare Workers、Deno、Bun、Node.js、AWS Lambdaなど複数のJavaScript実行環境に対応しています。
同じAPIを共有しやすい一方で、データベース接続やファイル操作など、各ランタイム固有の機能まで完全に共通化されるわけではありません。

最小のルート
import { Hono } from 'hono';
const app = new Hono();
app.get('/', (c) => c.text('Hello Hono'));
app.get('/users/:id', (c) => {
return c.json({ id: c.req.param('id') });
});
export default app;
Contextを通じてリクエスト、レスポンス、環境変数などを扱います。入力検証はValidatorやZod連携などを使い、型定義だけで実行時検証を済ませないことが重要です。
主な機能
- ルーティングとルートグループ
- 認証、CORS、ロギングなどのミドルウェア
- JSXレンダリング
- Hono RPCによるクライアントとサーバーの型共有
- 各ランタイム向けアダプター
採用時の注意
- 利用するランタイムのNode.js API互換性を確認する
- CPU時間、接続時間、リクエストサイズなどホスティング側の制限を確認する
- 秘密情報は環境変数やSecret機能で管理する
- 性能やバンドルサイズは利用するミドルウェア込みで計測する
初心者が試す順番
Honoは軽量ですが、HTTPの仕組みを省略する道具ではありません。最初にHTTP methodの役割を確認し、URL、JSON、status codeが何を表すか説明できる状態にします。
手を動かす順番は、次のように一段ずつ増やします。
GETrouteから固定のJSONを返すPOSTrequestのbodyを読む- 入力値を検証し、失敗時のstatusを返す
- 正常系と異常系をtestする
返答を調べるときは、API responseの読み方に沿ってstatus、headers、Content-Type、bodyを順に見ます。Node.js上でGET・POST・入力検証・testまで作る場合は、Hono入門の実践記事へ進んでください。