Koa.js-URL構築
これでルートを定義できます。それらは静的または固定のいずれかです。動的ルートを使用するには、さまざまなタイプのルートを提供する必要があります。動的ルートを使用すると、パラメーターを渡し、それに基づいて処理することができます。以下は、動的ルートの例です。
var koa = require('koa');
var router = require('koa-router');
var app = koa();
var _ = router();
_.get('/:id', sendID);
function *sendID() {
this.body = 'The id you specified is ' + this.params.id;
}
app.use(_.routes());
app.listen(3000);
これをテストするには、 https://localhost:3000/123。次の応答が返されます。
URLの「123」を他のものに置き換えることができ、それが応答に反映されます。以下は、上記の複雑な例です。
var koa = require('koa');
var router = require('koa-router');
var app = koa();
var _ = router();
_.get('/things/:name/:id', sendIdAndName);
function *sendIdAndName(){
this.body = 'id: ' + this.params.id + ' and name: ' + this.params.name;
};
app.use(_.routes());
app.listen(3000);
これをテストするには、 https://localhost:3000/things/tutorialspoint/12345。
あなたは使用することができます this.paramsURLで渡すすべてのパラメータにアクセスするためのオブジェクト。上記の2つは異なるパスを持っていることに注意してください。それらは決して重複しません。また、「/ things」を取得したときにコードを実行する場合は、個別に定義する必要があります。
パターン一致ルート
正規表現を使用して、URLパラメータの一致を制限することもできます。IDが5桁の長さの数字である必要があるとしましょう。次のルート定義を使用できます。
var koa = require('koa');
var router = require('koa-router');
var app = koa();
var _ = router();
_.get('/things/:id([0-9]{5})', sendID);
function *sendID(){
this.body = 'id: ' + this.params.id;
}
app.use(_.routes());
app.listen(3000);
これは only5桁の長いIDを持つリクエストに一致します。より複雑な正規表現を使用して、ルートを照合/検証できます。どのルートもリクエストに一致しない場合、応答として「見つかりません」というメッセージが表示されます。
たとえば、上記と同じルートを定義した場合、有効なURLでリクエストすると、次のようになります。