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」を返すミドルウェアを設定します。
ミドルウェアは、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>
ご覧のとおり、ミドルウェアの順序も重要です。
各ミドルウェアは 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 コミュニティが提供するミドルウェアを使用する必要があります。以下は一般的なミドルウェアのリストです。
さらに利用可能なミドルウェアについては、Koa GitHub を参照してください。
Koa は、API と Web アプリケーションを構築するための優れた軽量の最新 Web フレームワークです。 Koa Web サイトで詳細なドキュメントを読むことができます。
以上がKOA.JSのイントロ:APIとWebアプリの軽量フレームワークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。