KOA—javascriptサーバプログラミング学習ノート(一)

2260 ワード

KOAは、expressの元のクラスの人々が、より小さな、より豊かな、より強固なwebアプリケーションとAPIを提供するための新しいwebフレームを作成するために、以前にexpressについて知っていたが、KOAの経験は、より簡単に理解することができます.次に私達のKOAの旅を始めます.
1.任意に新しいディレクトリを作成します.
//koa-practise
2.koaを取り付ける
一般的には、他のツールのように、コマンドラインをグローバル環境でインストールして使用すると考えられます.でも、コーナは使わないで、どこで必要ですか?どこでnpm installを使ってもいいです.
npm install koa
私たちはたくさんのasync関数を使います.もしあなたのnodeバージョンが7.6以下なら、Babel's require hookをオススメします.
require('babel-core/register');
// require the rest of the app that needs to be transpiled after the hook
const app = require('./app');
async関数を解析して変換するために、少なくともAync to generator transformまたはtransform-async-to-module-methodの2つのプラグインのうちの1つを使用します.つまり、babelrcファイルでは次のように構成されています.
{
  "plugins": ["transform-async-to-generator"]
}
設定環境の設定もできます.指定された「node」を使って「current」を使うこともできます.
3.走る
最初のステップで作成したルートディレクトリの下で、メインアプリケーションファイル/koa-practise/MyApp.jsを新規作成します.
const Koa = require('koa');
const app = new Koa();

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

app.listen(3000);
次に他のnodeアプリケーションを実行するように入力します.
node MyApp.js
ブラウザを探して、local hostaを入力します.3000は意外ではないです.暖かいハローワールドを見たはずです.
カスケード
ここでは下級連絡書を紹介します.まず以下の例を見てみます.
const Koa = require('koa');
const app = new Koa();

// x-response-time

app.use(async (ctx, next) => {
  const start = Date.now();
  await next();
  const ms = Date.now() - start;
  ctx.set('X-Response-Time', `${ms}ms`);
});

// logger

app.use(async (ctx, next) => {
  const start = Date.now();
  await next();
  const ms = Date.now() - start;
  console.log(`${ctx.method} ${ctx.url} - ${ms}`);
});

// response

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

app.listen(3000);
上のコードの中で、requestを受け取ってから、全部でx-reponse-time、logger、reponseの3つの中間の部品を経験して、彼らの実行の順序はこのようです.x-reponse-timeでstart静的変数を作成した後、次の()メソッドに入り、両方をloggerのミドルウェアに転送します.loggerはx-reponse-timeの下り中段、loggerの中にnext()の方法があって、x-reponse-timeと同じに、loggerはreponseの中间件に入ります.reponseのミドルウェアでは、その内容を実行し終わったら、コントロールをアップロードのミドルウェア、つまりlogger、loggerのミドルウェアに渡してnext()の後の文を実行します.これを類推して、最終的にx-reponse-timeの中間部品を実行し終わって、最後にresをクライアントに返します.ということです