sails.js
ルーティング
サーチ…
備考
ルートとは、入ってくるリクエストに直面したときに何をすべきかをSailsに伝えるルールです。
ルートはconfig/routes.js
定義されています。ルートの順序は、ルートがトップダウンに一致するため、重要です。つまり、特定のルートがワイルドカードルートと一致する可能性がある場合、特定のルートはワイルドカードルートの上に定義する必要があります。
リクエストがアプリケーションに入力されると、sails.jsはそれに付属するすべてのパラメータを取得し、リクエストオブジェクトのparams
として利用可能にします。
ルートターゲットオブジェクトのプロパティは、req.optionsオブジェクトのルートハンドラに渡されます。以下は、ルートハンドラの動作に影響する可能性のある予約済みのプロパティです。
プロパティ | 適用可能なターゲットタイプ | データ・タイプ | 詳細 |
---|---|---|---|
スキップアセット | すべて | ブール | ルートにドットを含むURLを一致させたくない場合はtrue 設定しtrue (例:myImage.jpg)。これにより、ワイルドカード表記で経路を静的資産の一致するURLから保護します。 URLスラッグを作成する場合に便利です。 |
skipRegex | すべて | 正規表現 | ドットを含むすべてのURLをスキップするのが許容できない場合や、異なる条件に基づいてスキップされるルートのハンドラが必要な場合は、 skipRegex を使用できます。このオプションを使用すると、要求URLに一致する正規表現または正規表現の配列を指定できます。いずれかの一致が成功した場合、ハンドラはスキップされます。ハンドラを正規表現でバインドする構文とは異なり、 skipRegex は文字列ではなく実際のRegExpオブジェクトをskipRegex することに注意してください。 |
地元の人々 | コントローラ、ビュー、青写真、レスポンス | 辞書 | 要求を処理する際にレンダリングされるすべてのビューに渡すように、デフォルトのローカル変数を設定します。 |
コルス | すべて | 辞書またはブール値または文字列 | 異なるルートからのこのルートの要求を処理する方法を指定します。 |
人口 | 青写真 | ブール | 「find」または「findOne」青写真アクションの結果に、関連するモデルフィールドが設定されている必要があるかどうかを示します。デフォルトでは、 config/blueprints.js 設定されている値になります。 |
スキップ 、 制限 、 並べ替え 、 どこで | 青写真 | 辞書 | 「発見」青写真の基準を設定します。 |
カスタムRESTfulルート定義
module.exports.routes = {
'GET /foo': 'FooController.index',
'GET /foo/new': 'FooController.new',
'POST /foo/create': 'FooController.create',
'GET /foo/:id/edit': 'FooController.edit',
'PUT /foo/:id/update': 'FooController.update',
'GET /foo/:id': 'FooController.show',
'DELETE /foo/:id': 'FooController.delete',
};
リダイレクト
module.exports.routes = { '/foo': '/bar', 'GET /google': 'http://www.google.com' };
すべてのビューのカスタム変数を定義する
module.exports.routes = { // This function will be executed for all http verbs on all urls 'all /*', function (req, res, next) { // Expose the function `fooBar` to all views (via the locals object) res.locals.fooBar = function (arg1) { return 'foobar' + arg1; }; }, };
ワイルドカードルートからアセットをスキップする(ドットが入ったURL)
module.exports.routes = { 'GET /foo/*': { fn: function(req, res) { res.send("FOO!"); }, skipAssets: true }, };
正規表現による経路
module.exports.routes = {
// sends matching regex (few patterns) as 'page' param
'r|/foo/([0-9]+)|page': 'FooController.get',
'r|/foo/(.*)|page': 'FooController.get',
'r|/foo/(\\w+)|page': 'FooController.get'
};
URLスラッグ
module.exports.routes = {
'GET /blog/:year/:month/:day/:posttitle/': 'BlogController.showPost',
'GET /blog/:year/:month/:day/': 'BlogController.showDayArchive',
'GET /blog/:year/:month/': 'BlogController.showMonthArchive',
'GET /blog/:year/': 'BlogController.showYearArchive',
};
req.param('year')
、 req.param('month')
などを使用して、対応するコントローラアクションでURLに渡されたパラメータにアクセスできます。
たとえば、 /blog/2016/08/
BlogController.showMonthArchive
/blog/2016/08/
へのGET
リクエストは、 req.param('year')
の値が2016
でreq.param('month')
の値が08
あるBlogController.showMonthArchive
コントローラアクションをトリガーします。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow