2013-08-13 13 views

答えて

11

帆アプリケーションにエクスプレスミドルウェアを追加するのは簡単です。

新しいポリシーを作成します。

policies 
    |_ 
    middleware.js/.coffee 

あなたがすべてに適用することができますミドルウェアを作成したら、我々はその後のNode.js

module.exports = require('middle-ware')(OPTIONS_GO_HERE) // See middleware docs for configuration settings. 

のための標準的な輸出を作成し、あなたのミドルウェア・ファイルの中エクスプレスミドルウェアYOUR_MIDDLE_WARE_FILE_NAME.js

を追加します。 Sails.js convensionに従うことによって、要求または単一のコントローラを使用できます。

アプリケーション全体policies.js

module.exports.policies = { 
    '*':['middleware'] // node same name as file without extention 
} 

シングルコントローラのアクションpolicies.js

module.exports.policies = { 
    RabbitController:{ 
     feed:['middleware'] 
    } 
} 
+0

私はこれを動作させることに失敗しました。帆のためのヒント0.11 –

7

まず、@SkyTecLabs'答えは、これを行うための適切な方法です。しかし、私はいくつかのケースでは、静的ファイル(画像、クライアントサイドのJavaScript、CSSなど)を制御する必要があるかもしれないと付け加えたいと思います。この場合、すべてのルートにミドルウェアを適用することができます。

Sails.jsのv0.9.3の時点で、あなたが行うことができます:

ここ
// Put this in `config/express.js` 
module.exports.express = { 
    customMiddleware: function (app) { 
    app.use(require('../node_modules/sails/node_modules/express').basicAuth('balderdash', 'wickywocky')); 
    } 
}; 

続きを:あなたはミドルウェアがあなたのコントローラやアクションの一つ以上の前に実行したい場合にはhttps://gist.github.com/mikermcneil/6255295

しかし、あなたは間違いなくポリシーのアプローチを使用してより良いサービスを提供しています!

+1

これは私のために働いた。私は受け入れられた答えを使用する方法を理解できませんでした。具体的には、OPTIONS_GO_HEREにどのようなオプションを使用するのか不明で、sailsjsのマニュアルでその箇所が説明されていないことがわかりました。 – alarner

+0

チップをありがとう - 我々は確信してそれを動作させるでしょう! – mikermcneil

関連する問題