ホームページ > ウェブフロントエンド > jsチュートリアル > KOA.JSのイントロ:APIとWebアプリの軽量フレームワーク

KOA.JSのイントロ:APIとWebアプリの軽量フレームワーク

Mary-Kate Olsen
リリース: 2025-01-25 18:31:10
オリジナル
727 人が閲覧しました

Intro to Koa.js: A Lightweight Framework for APIs & Web Apps

Koa は、Express.js チームによって開発された軽量の最新のミドルウェア フレームワークで、非同期ミドルウェア機能の使用を可能にします。

サンプルアプリケーション

<code class="language-javascript">const Koa = require('koa');
const app = new Koa();

app.use(async function(ctx) {
  ctx.body = 'Hello';
});

app.listen(3000);</code>
ログイン後にコピー
ログイン後にコピー

ここでは、Koa インスタンスを作成し、各リクエストに「Hello」を返すミドルウェアを設定します。

特徴

  • 現代文法
  • 非同期/待機ミドルウェアをサポートします。
  • 軽量で、コードはわずか約 570 行です。
    • バンドルされたミドルウェアはゼロ。
  • (req, res) の代わりにコンテキスト (ctx) オブジェクト
    • ミドルウェア署名は middleware(ctx, next) です
  • エラー処理の改善

ミドルウェアとは何ですか?

ミドルウェアは、HTTP リクエストを受信し、リクエスト/レスポンス サイクル中にリクエストに応答する機能です。リスト内の次のミドルウェアを呼び出すこともできます。ここに一例を示します。

<code class="language-javascript">async function exampleMiddleware(ctx, next) {
  // 从 ctx(上下文)读取请求数据
  // 更多逻辑
  // 设置 ctx.body 作为响应

  // 调用下一个中间件
  await next();

  // 在调用 next 之后,由于使用了 await 语法,我们可以做更多的事情。
  // 例如记录所花费的时间
}

// 设置中间件
app.use(exampleMiddleware);</code>
ログイン後にコピー
ログイン後にコピー

ミドルウェア フレームワークを使用すると、複数のミドルウェア関数を定義し、定義された順序でそれらを実行できます。上の例の次のパラメータに気づいたかもしれません。これは、呼び出されると次のミドルウェアに制御を渡す関数です。

非同期関数を使用すると、ミドルウェアの実行後に await を使用してスタック方式で特定の操作を実行できます。

これ以上実行する必要がない場合は、next を呼び出す必要はありません。たとえば、認証ミドルウェアを考えてみましょう。ユーザーがログインしている場合は next が呼び出され、ログインしていない場合はログイン ページが表示されます。

<code class="language-javascript">// 身份验证中间件
app.use(async (ctx, next) => {
  if(user){
    // 调用列表中的下一个中间件
    await next();
  } else {
    // 显示登录页面
  }
});

// Hello 中间件
app.use(async (ctx) => {
  ctx.body = 'Hello';
});</code>
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、ミドルウェアの順序も重要です。

Koa コンテキスト (ctx)

各ミドルウェアは 2 つのパラメータを受け取ります。 1 つ目は context (ctx と略されます)、そして次です。

ctx にはリクエストの属性が含まれます。さらに、リクエストに応答できるセッターも含まれています。

以下は一般的な属性のリストです。完全なリストはここでご覧いただけます。

名称 描述
ctx.method 当前请求方法
ctx.path 当前请求路径
ctx.query 查询字符串
ctx.body 设置响应正文的设置器
一般的なタスクの実行方法 ------------------------

ミドルウェアを追加

app.use - ドキュメントを使用します。ミドルウェアの順序は重要であることに注意してください。

<code class="language-javascript">const Koa = require('koa');
const app = new Koa();

app.use(async function(ctx) {
  ctx.body = 'Hello';
});

app.listen(3000);</code>
ログイン後にコピー
ログイン後にコピー

サーバーを起動します

app.listen を使用する - ドキュメント。

<code class="language-javascript">async function exampleMiddleware(ctx, next) {
  // 从 ctx(上下文)读取请求数据
  // 更多逻辑
  // 设置 ctx.body 作为响应

  // 调用下一个中间件
  await next();

  // 在调用 next 之后,由于使用了 await 语法,我们可以做更多的事情。
  // 例如记录所花费的时间
}

// 设置中间件
app.use(exampleMiddleware);</code>
ログイン後にコピー
ログイン後にコピー

レスポンスボディを設定します

ctx.body セッターを使用する - ドキュメント。

<code class="language-javascript">// 身份验证中间件
app.use(async (ctx, next) => {
  if(user){
    // 调用列表中的下一个中间件
    await next();
  } else {
    // 显示登录页面
  }
});

// Hello 中间件
app.use(async (ctx) => {
  ctx.body = 'Hello';
});</code>
ログイン後にコピー
ログイン後にコピー

リダイレクト

ctx.redirect を使用する - ドキュメント。

<code class="language-javascript">app.use(middlewareFunction1);
app.use(middlewareFunction2);
app.use(middlewareFunction3);</code>
ログイン後にコピー

エラー処理

ctx.throw の使用 - ドキュメント。

<code class="language-javascript">app.listen(3000);</code>
ログイン後にコピー

完全なアプリケーションを構築する方法

Koa は、ミドルウェアで使用できるミドルウェア フレームワークと ctx を提供します。バンドルされたミドルウェアは含まれていません。

完全なアプリケーションを構築するには、Koa コミュニティが提供するミドルウェアを使用する必要があります。以下は一般的なミドルウェアのリストです。

  • ルーター
  • ボディパーサー
  • ロガー
  • ejs レンダラー

さらに利用可能なミドルウェアについては、Koa GitHub を参照してください。

結論

Koa は、API と Web アプリケーションを構築するための優れた軽量の最新 Web フレームワークです。 Koa Web サイトで詳細なドキュメントを読むことができます。

以上がKOA.JSのイントロ:APIとWebアプリの軽量フレームワークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート