KOA—javascriptサーバプログラミング学習ノート(一)
2260 ワード
KOAは、expressの元のクラスの人々が、より小さな、より豊かな、より強固なwebアプリケーションとAPIを提供するための新しいwebフレームを作成するために、以前にexpressについて知っていたが、KOAの経験は、より簡単に理解することができます.次に私達のKOAの旅を始めます.
1.任意に新しいディレクトリを作成します.
//koa-practise
2.koaを取り付ける
一般的には、他のツールのように、コマンドラインをグローバル環境でインストールして使用すると考えられます.でも、コーナは使わないで、どこで必要ですか?どこでnpm installを使ってもいいです.
3.走る
最初のステップで作成したルートディレクトリの下で、メインアプリケーションファイル/koa-practise/MyApp.jsを新規作成します.
カスケード
ここでは下級連絡書を紹介します.まず以下の例を見てみます.
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をクライアントに返します.ということです