Koajs-url-building

提供:Dev Guides
移動先:案内検索

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);

これをテストするには、 [[1]] に移動します。 次の応答が返されます。

URLビルID

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);

これをテストするには、 [[2]] にアクセスします。

URL Building Complex

*_this.params_* オブジェクトを使用して、URLで渡すすべてのパラメーターにアクセスできます。 上記の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);

これは、5桁の長いIDを持つリクエストにのみ*一致*することに注意してください。 より複雑な正規表現を使用して、ルートを照合/検証できます。 リクエストに一致するルートがない場合、応答としてNot foundメッセージが表示されます。

たとえば、上記と同じルートを定義した場合、有効なURLで要求すると、次のようになります-

URLマッチングが正しい