sails.config.blueprintsこれらの設定可能な設定により、SailsのブループリントAPIを構成できます。sails.config.blueprints.autoWatchのような一部の設定は、組み込みのブループリントアクションの動作を制御するのに対し、sails.config.blueprints.shortcutsのような他の設定は、暗黙的なブループリントルーティングの動作を調整したり、Sailsが特定の種類のブループリントルートを自動的にバインドするかどうかを決定します。
暗黙的なブループリントルーティングが有効かどうかとは関係なく、ブループリントアクションはカスタムルートにアタッチできることに注意してください。
| プロパティ | 型 | デフォルト値 | 詳細 |
|---|---|---|---|
actions |
false |
アプリケーション内のすべてのアクションに対して、暗黙的なブループリント(「シャドウ」)ルートが自動的に生成されるかどうか。たとえば、api/controllers/foo/bar.jsファイル、またはapi/controllers/FooController.js内のbar関数があると、カスタムルートで上書きされていない限り、/foo/barへの着信リクエストがそのアクションに自動的にルーティングされます。有効にすると、この設定は、indexという名前のアクションと、アプリケーションとその各コントローラーの相対的な「ルート」URLに追加の特別な暗黙的な(「シャドウ」)ルートもバインドします。たとえば、api/controllers/foo/index.jsの/fooシャドルート、またはapi/controllers/index.jsの/シャドルートなどです。 |
|
rest |
true |
自動RESTブループリントが有効かどうか?例:'get /:model/:id?' 'post /:model' 'put /:model/:id' 'delete /:model/:id'。 |
|
shortcuts |
true |
これらのCRUDショートカットは開発中の利便性のために存在しますが、本番環境では無効にする必要があります。:'/:model/find/:id?'、'/:model/create'、'/:model/update/:id'、および'/:model/destroy/:id'。 |
|
prefix |
'' |
rest、actions、およびshortcutsを含むすべてのブループリントルートのオプションのマウントパス接頭辞(例:'/api/v2')。これは、カスタムルートではなく、暗黙的なブループリント(「シャドウ」)ルートにのみ適用されます。 |
|
restPrefix |
'' |
コントローラー上のすべてのRESTブループリントルートのオプションのマウントパス接頭辞、例:'/api/v2'。(actionsおよびshortcutsルートは含まれません。)これにより、RESTful APIメソッドの名前空間を指定する必要がある場合でも、RESTブループリントルーティングを利用できます。prefix設定に結合されます。例:prefix: '/api'とrestPrefix: '/rest'。RESTfulアクションは/api/restで使用できます。 |
|
pluralize |
false | ブループリントルートで複数形モデル名を使用するかどうか(例:Userモデルの/users)。(これは、sails.config.routesからの手動ルートではなく、ブループリント自動ルートにのみ適用されます。) |
| プロパティ | 型 | デフォルト値 | 詳細 |
|---|---|---|---|
autoWatch |
true |
ブループリントAPIを介して新しく作成されたレコードに関する通知を、findおよびfindOneブループリントアクションで要求しているソケットに購読するかどうか。 |
|
parseBlueprintOptions |
(下記参照) | ブループリントアクションのデフォルトの動作(検索条件、スキップ、制限、ソート、およびポピュレーションを含む)をオーバーライドするには、この関数を使用します。 |
parseBlueprintOptionsの使用各ブループリントアクションは、その中心にWaterlineモデルメソッド呼び出しを含みます。たとえば、Userモデルに対して実行されるfindブループリントは、いくつかのユーザーレコードを取得するためにUser.find()を実行します。これらのWaterlineメソッドに渡されるオプションは、parseBlueprintOptions()への呼び出しによって決定されます。このメソッドのデフォルトバージョン(sails.hooks.blueprints.parseBlueprintOptions()から利用可能)は、ブループリントのデフォルトの動作を決定します。ブループリント設定(config/blueprints.js内)でparseBlueprintOptionsをオーバーライドしてすべてのブループリントアクションの動作をカスタマイズしたり、ルートごとにオーバーライドして単一ルートの動作をカスタマイズできます。
parseBlueprintOptions()メソッドは単一の引数(リクエストオブジェクト)を受け取り、Waterlineクエリオプションの辞書を返すことが期待されます。(このような辞書の非現実的に拡張された例をこちらで確認できますが、すべてのキーがすべてのブループリントアクションに適用されるわけではないことに注意してください。Sailsコードのソースコードで完全な詳細を確認してください)。
独自のparseBlueprintOptions()を追加することは高度な概念であり、最初にデフォルトメソッドコードに精通して、それを出発点として使用することをお勧めします。ブループリント動作に対する小さな修正を行うには、最初にオーバーライド内でデフォルトメソッドを呼び出し、返されたクエリオプションに変更を加えるのが最適です。
parseBlueprintOptions: function(req) {
// Get the default query options.
var queryOptions = req._sails.hooks.blueprints.parseBlueprintOptions(req);
// If this is the "find" or "populate" blueprint action, and the normal query options
// indicate that the request is attempting to set an exceedingly high `limit` clause,
// then prevent it (we'll say `limit` must not exceed 100).
if (req.options.blueprintAction === 'find' || req.options.blueprintAction === 'populate') {
if (queryOptions.criteria.limit > 100) {
queryOptions.criteria.limit = 100;
}
}
return queryOptions;
}
sails.config.security
sails.config.session
sails.config.sockets
sails.config.views
req)
req._startTime
req.body
req.cookies
req.fresh
req.headers
req.hostname
req.ip
req.ips
req.isSocket
req.method
req.options
req.originalUrl
req.params
req.path
req.protocol
req.query
req.secure
req.signedCookies
req.socket
req.subdomains
req.url
req.wantsJSON
req.xhr
req.accepts()
req.acceptsCharsets()
req.acceptsLanguages()
req.allParams()
req.file()
req.get()
req.is()
req.param()
req.setLocale()
req.setTimeout()
req.host
res)