Koa.js-ルーティング
Webフレームワークは、HTMLページ、スクリプト、画像などのリソースをさまざまなルートで提供します。Koaはコアモジュールのルートをサポートしていません。Koaでルートを簡単に作成するには、Koa-routerモジュールを使用する必要があります。次のコマンドを使用して、このモジュールをインストールします。
npm install --save koa-router
Koa-routerがインストールされたので、簡単なGETルートの例を見てみましょう。
var koa = require('koa');
var router = require('koa-router');
var app = koa();
var _ = router(); //Instantiate the router
_.get('/hello', getMessage); // Define routes
function *getMessage() {
this.body = "Hello world!";
};
app.use(_.routes()); //Use the routes defined using the router
app.listen(3000);
アプリケーションを実行してlocalhost:3000 / helloに移動すると、サーバーはルート「/ hello」でgetリクエストを受信します。Koaアプリは、このルートにアタッチされたコールバック関数を実行し、「HelloWorld!」を送信します。応答として。
同じルートで複数の異なる方法を使用することもできます。例えば、
var koa = require('koa');
var router = require('koa-router');
var app = koa();
var _ = router(); //Instantiate the router
_.get('/hello', getMessage);
_.post('/hello', postMessage);
function *getMessage() {
this.body = "Hello world!";
};
function *postMessage() {
this.body = "You just called the post method at '/hello'!\n";
};
app.use(_.routes()); //Use the routes defined using the router
app.listen(3000);
このリクエストをテストするには、ターミナルを開き、cURLを使用して次のリクエストを実行します
curl -X POST "https://localhost:3000/hello"
特別な方法、 allは、同じ関数を使用して特定のルートですべてのタイプのhttpメソッドを処理するためにexpressによって提供されます。この方法を使用するには、次のことを試してください。
_.all('/test', allMessage);
function *allMessage(){
this.body = "All HTTP calls regardless of the verb will get this response";
};