ホームページ >ウェブフロントエンド >jsチュートリアル >Hono.js: 次世代の Node.js フレームワーク
市場にはすでに Node.js 用のバックエンド ライブラリとフレームワークが多数存在します。私は以前、いくつかの小規模プロジェクトに Nest.js を使用したことがあります。充実した機能を備えており、迅速なプロジェクトの実行を可能にします。しかし、私の小規模プロジェクトにとって、その機能の多くは本当に過剰であり、高度なカプセル化が行われているため、コードを記述する際の自由度はほとんどありません。
私は偶然、オンラインでほのを知りました。ドキュメントを読んだ後:
Hono は、Express に似たシンプルな Web アプリケーション フレームワークですが、フロントエンドはありません。ミドルウェアと組み合わせることで、より大規模なアプリケーションを構築できます。以下にいくつかの使用例を示します:
わかりました。学習を始めましょう。
https://hono.dev/docs/getting-started/basic
ポートを設定することでポートを変更できます。
import { Hono } from 'hono'; const app = new Hono(); app.get('/', (c) => { return c.text('Hello Hono!'); }); export default app;
実行するには:
npm run dev
アクセスするには: http://localhost:8787
app.get('/', (c) => c.text('GET /')); app.post('/', (c) => c.text('POST /')); app.put('/', (c) => c.text('PUT /')); app.delete('/', (c) => c.text('DELETE /'));
const apiRoutes = app .basePath("/api") .route("/expenses", route1) .route("/", route2);
前のbasePath("/api") は、すべてのルートに /api プレフィックスを追加します。
export const route1 = new Hono() .post("/", async (c) => { return c.json({ }); });
上記のルートには http://localhost:8787/api/expenses 経由でアクセスできます。
app.get('/posts/:id', (c) => { const page = c.req.query('page'); const id = c.req.param('id'); return c.text(`You want see ${page} of ${id}`); });
結果を表示します: http://localhost:8787/posts/1?page=12
app.put("/posts/:id{[0-9]+}", async (c) => { const data = await c.req.json(); return c.json(data); });
text() のほかに、リクエストでさまざまなタイプのデータを返すための、json()、html()、notFound()、redirect() などのメソッドが多数あります。 html() は JSX を直接返すことができます。
import { Hono } from 'hono'; const app = new Hono(); app.get('/', (c) => { return c.text('Hello Hono!'); }); export default app;
ファイル拡張子を .tsx に変更するだけで、React によく似た JSX を直接記述することができます。
クライアントから送信されたリクエストが指定されたデータ形式に準拠しているかどうかを確認するために、zod および @hono/zod-validator を通じてバリデータが実装されます。
インストール: 糸追加 zod @hono/zod-validator
たとえば、リクエストでそれを確認する必要がある場合、クライアントから送信されるデータ形式は次のとおりである必要があります:
アカウント: 文字列;パスワード: 文字列
npm run dev
詳細については、zod のドキュメントをご覧ください。また、IDE はユーザーに型ヒントを直接表示できます。
最後に、Hono アプリのデプロイに非常に適したプラットフォーム、Leapcell を紹介します。
Leapcell は、次の特徴を持つサーバーレス プラットフォームです:
ドキュメントでさらに詳しく見てみましょう!
Leapcell Twitter: https://x.com/LeapcellHQ
以上がHono.js: 次世代の Node.js フレームワークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。