Node.jsに基づいてKoaHubプラットフォームによって開発されたKoaルータールーティングプラグインコード情報の詳細
コアルーター
koa 用のルーターミドルウェア。 RESTful リソース ルーティングを提供します。
コアルーター
koa 用ルーターミドルウェア[リスト][*]app.get、app.put、app.post などを使用した高速スタイルのルーティング
[*]名前付き URL パラメータ
[*]URL 生成を使用した名前付きルート
[*]許可されたメソッドで OPTIONS リクエストに応答します。
[*] 405 メソッドのサポートは許可されておらず、501 は実装されていません。
[*]複数ルートのミドルウェア
[*]複数のルーター
[*]ネスト可能なルーター
[*]ES7 非同期/待機サポート (koa-router 7.x).[/list]koa 2.x
koa 2.x および async/await のサポートについては、koa-router 7.x を参照してください。
インストール
npm:npm install koa-router
APIリファレンス[list][*]koa-router
を使用してインストールします
[*]ルーター ⏏
[*]新しいルーター([opts])
[*]インスタンス
[*].get|put|post|patch|delete ⇒ ルーター
[*].param(param, ミドルウェア) ⇒ ルーター
[*].use([パス], ミドルウェア, [...]) ⇒ ルーター
[*].routes ⇒ 関数
[*].allowedMethods([オプション]) ⇒ 関数
[*].redirect(ソース、宛先、コード) ⇒ ルーター
[*].route(name) ⇒ レイヤー |偽
[*].url(名前, パラメータ) ⇒ 文字列 |エラー
[*]静的
[*].url(path, params) ⇒ String[/list]ルーター
種類: エクスポートされたクラス
新しいルーター([opts])
新しいルーターを作成します。
[table=50%]
var app = require('koa')();<br>
var router = require('koa-router')();<br>
<br>
router.get('/', function *(next) {...});<br>
<br>
アプリ<br>
.use(router.routes())<br>
.use(router.allowedMethods());
router.get|put|post|patch|delete ⇒ ルーターrouter<br>
.get('/', function *(next) {<br>
this.body = 'Hello World!';<br>
})<br>
.post('/users', function *(next) {<br>
// ... <br>
})<br>
.put('/users/:id', function *(next) {<br>
// ... <br>
})<br>
.del('/users/:id', function *(next) {<br>
// ... <br>
});
ルート パスは、path-to-regexp を使用して正規表現に変換されます。router.get('user', '/users/:id', function *(next) {<br>
// ... <br>
});<br>
<br>
router.url('ユーザー', 3);<br>
// =>> "/users/3"
複数のミドルウェアrouter.get(<br>
'/users/:id',<br>
関数 *(次) {<br>
this.user = yield User.findOne(this.params.id);<br>
次に譲ります;<br>
}、<br>
関数 *(次) {<br>
console.log(this.user);<br>
// =>> { id: 17, name: 「アレックス」 } <br>
}<br>
);
ネストされたルーターvar forums = new Router();<br>
var posts = 新しい Router();<br>
<br>
Posts.get('/', function *(next) {...});<br>
Posts.get('/:pid', function *(next) {...});<br>
forums.use('/forums/:fid/posts', posts.routes(), posts.allowedMethods());<br>
<br>
// 「/forums/123/posts」 および 「/forums/123/posts/123」 に応答します <br>app.use(forums.routes());
ルータープレフィックスvar router = new Router({<br>
接頭辞: 「/users」<br>
});<br>
<br>
router.get('/', ...); // 「/users」に応答します <br>
router.get('/:id', ...); // 「/users/:id」
URL パラメータに応答しますrouter.get('/:category/:title', function *(next) {<br>) に追加されます
console.log(this.params);<br>
// =>> { カテゴリ: 「プログラミング」、タイトル: 「ノードの作り方」 } <br>
});
Kind: Routerrouter.use(session(), authorize());<br>
<br>
// 指定されたパスでのみミドルウェアを使用します<br>
router.use('/users', userAuth());<br>
<br>
app.use(router.routes());
router.prefix(prefix) ⇒ ルーターrouter.prefix('/things/:thing_id')
router.prefix('/things/:thing_id')<br>var app = koa();<br>
var ルーター = ルーター();<br>
<br>
app.use(router.routes());<br>
app.use(router.allowedMethods());<br>
<br>
ブームを使った例<br>
<br>
var app = koa();<br>
var ルーター = ルーター();<br>
var ブーム = require('ブーム');<br>
<br>
app.use(router.routes());<br>
app.use(router.allowedMethods({<br>
スロー: 本当です、<br>
実装されていません: () => new Boom.notImplemented()、<br>
MethodNotAllowed: () => new Boom.methodNotAllowed()
}));router.redirect(ソース、宛先、コード) ⇒ ルーターrouter.redirect('/login', 'sign-in');
送信元と宛先の両方をルート名にすることができます。router.redirect('/login', 'sign-in');<br>これは次と同等です:<br>router.all('/login', function *() {<br>
this.redirect('/sign-in');
this.status = 301;