2013-10-12 3 views
8

मैं उदाहरण के लिए एक विशिष्ट मिडलवेयर, जो मैं app.js में पहले सेट किए गए निष्क्रिय करने के लिए, चाहते हैं:क्या एक्सप्रेसजेएस में विशिष्ट मार्ग के लिए मिडलवेयर को अक्षम/निकालना संभव है?

app.use(express.bodyParser()); 

और फिर मैं कि bodyParser() को दूर करने के लिए एक विशिष्ट मार्ग के लिए चाहते हैं उदाहरण:

app.post("/posts/add", Post.addPost); 

धन्यवाद

उत्तर

22

आप एक समारोह लिख सकता है इस तरह एक शर्त है पता लगाने के लिए,:

function maybe(fn) { 
    return function(req, res, next) { 
     if (req.path === '/posts/add' && req.method === 'POST') { 
      next(); 
     } else { 
      fn(req, res, next); 
     } 
    } 
} 

और फिर app.use कथन को संशोधित:

app.use(maybe(express.bodyParser())); 
+0

यह एक आकर्षण की तरह काम करता है, THX इतना वर्नर – mrblue

+0

यह मैं बाहर में की है, हम है कि हम app.use साथ विश्व स्तर पर का उपयोग कस्टम middlewear है , और अब हम चाहते हैं कि यह कुछ मार्गों के लिए अक्षम हो। जिस समाधान के साथ हम आए थे, वह मध्यस्थों को मार्गों की सूची स्वीकार करने के लिए किया जाना चाहिए: डी niceeeeeeeeeee –

+0

पागल! यह काम करता हैं! धन्यवाद! –

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