Node.js に基づいて KoaHub プラットフォームによって開発されたルーター ルーティング プラグイン コード

WBOY
リリース: 2016-10-19 10:18:16
オリジナル
1219 人が閲覧しました

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-routerAPIリファレンス[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%]

Param TypeDescription [opts] オブジェクト [opts.prefix] 文字列 プレフィックスルーターパス [/table]例 基本的な使用法: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.verb() メソッドを作成します。ここで、verb は router.get() や router.post() などの HTTP 動詞の 1 つです。

router.verb() を使用して、URL パターンをコールバック関数またはコントローラー アクションと照合します。ここで、動詞は、router.get() や router.post() などの HTTP 動詞の 1 つです。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 を使用して正規表現に変換されます。

クエリ文字列はリクエストの照合時に考慮されません。

名前付きルート

ルートにはオプションで名前を付けることができます。これにより、開発中に URL を生成したり、URL の名前を簡単に変更したりできるようになります。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 パラメータに応答します

名前付きルート パラメータがキャプチャされ、ctx.params.router.get('/:category/:title', function *(next) {<br>) に追加されます   console.log(this.params);<br>   // =>> { カテゴリ: 「プログラミング」、タイトル: 「ノードの作り方」 } <br> });Kind: Router
のインスタンス プロパティ
[table=50%] Param Type Description path String [ミドルウェア] 関数 ルートミドルウェア コールバック 関数 ルートコールバック [/table]router.routes ⇒ function

リクエストに一致するルートをディスパッチするルーターミドルウェアを返します。

種類: Router のインスタンス プロパティ

router.use([パス], ミドルウェア, [...]) ⇒ ルーター

ルート コールバックの前に指定されたミドルウェアを使用します。

いずれかのルートが一致した場合にのみ実行されます。パスが指定されている場合、ミドルウェアはそのパスを含むルートに対して実行されます。

種類: Routerのインスタンスメソッド

[table=50%] Param Type [path] String ミドルウェア function [...] function [/table]router.use(session(), authorize());<br>  <br> // 指定されたパスでのみミドルウェアを使用します<br> router.use('/users', userAuth());<br>  <br> app.use(router.routes());router.prefix(prefix) ⇒ ルーター

すでに初期化されている Router インスタンスのパス プレフィックスを設定します。

Kind: Router
のインスタンスメソッド
[table=50%] Param Type prefix String [/table]Examplerouter.prefix('/things/:thing_id')router.prefix('/things/:thing_id')
router.allowedMethods([options] ) ⇒ 関数

許可されたメソッドを含むAllowヘッダーを持つOPTIONSリクエストに応答するための別のミドルウェアを返します。また、必要に応じて405 Method NotAllowedおよび501 Not Implementedで応答します。
Kind
: Router
のインスタンスメソッド
[table=50%]ParamTypeDescription [options]オブジェクト [options.throw]ブールステータスとヘッダーを設定する代わりにエラーをスローします [options.notImplemented] 関数デフォルトのNotImplementedエラーの代わりに戻り値をスローします [options.methodNotAllowed] 関数デフォルトのMethodNotAllowedの代わりに戻り値をスローしますエラー [/table]<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(ソース、宛先、コード) ⇒ ルーター


オプションの 30x ステータス コードを使用して、ソースを宛先 URL にリダイレクトします。
router.redirect('/login', 'sign-in'); 送信元と宛先の両方をルート名にすることができます。router.redirect('/login', 'sign-in');<br>これは次と同等です:<br>router.all('/login', function *() {<br>   this.redirect('/sign-in');   this.status = 301;
});
種類: Router のインスタンス メソッド🎜 🎜[table=50%] Param Type Description source String URLまたはルート名 destination String URLまたはルート名。 コード 番号 HTTPステータスコード(デフォルト: 301). [/table]router.route(name) ⇒ Layer false

指定された名前でルートを検索します。

Kind: Router
のインスタンスメソッド
パラメータタイプ
名前文字列

router.url(name, params) ⇒ 文字列エラー

ルート名と名前付きの地図を取得して URL を生成します

wemall オープンソース マイクロ モール、WeChat モール、モール ソース コード、3 レベルの流通、マイクロ生鮮食品、マイクロ フルーツ、マイクロ テイクアウト、マイクロ注文---プロフェッショナル O2O システム

wemallアドレス: http://www.wemallshop.com


コードソース: http://js.koahub.com/home/feature/koa-jwt
Node.js に基づいて KoaHub プラットフォームによって開発されたルーター ルーティング プラグイン コード

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート