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
)