2013-08-13 12 views

उत्तर

11

एक सेल आवेदन में एक्सप्रेस-मिडलवेयर जोड़ना सरल है।

एक नई नीति बनाएं।

policies 
    |_ 
    middleware.js/.coffee 

अपने मिडलवेयर फ़ाइल के अंदर एक्सप्रेस मिडिलवेयरYOUR_MIDDLE_WARE_FILE_NAME.js

जोड़े हम Node.js

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

तब के लिए मानक निर्यात बनाने के एक बार आप मिडलवेयर बनाया है कि आप सभी के लिए लागू कर सकते हैं Sails.js convenionion का पालन करके अनुरोध या एक नियंत्रक।

पूरा आवेदन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 'जवाब यह करने के लिए उचित तरीका है। लेकिन मैं इसे जोड़ना चाहता था, कुछ मामलों में, आपको अपनी स्थिर फाइलों (छवियों, क्लाइंट-साइड जावास्क्रिप्ट, सीएसएस, आदि) को भी नियंत्रित करने की आवश्यकता हो सकती है (मुझे अभी हाल ही में इसका सामना करना पड़ा)। इस मामले में, आप प्रत्येक मार्ग पर सामान्य रूप से मिडलवेयर लागू कर सकते हैं।

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

संबंधित मुद्दे