2012-06-14 10 views
16

एक्सप्रेस में, मैं कुछ मार्गोंकैसे रोकना Node.js एक्सप्रेस अनुरोध

app.post("/api/v1/client", Client.create); 
app.get("/api/v1/client", Client.get); 
... 

मैं परिभाषित किया है कि कैसे एक ग्राहक नियंत्रक अंदर अनुरोधों को हैंडल करने को परिभाषित किया है। क्या कोई तरीका है कि मैं अपने नियंत्रक में उन्हें संभालने से पहले अनुरोधों के लिए कुछ प्री-प्रोसेसिंग कर सकता हूं? मैं विशेष रूप से जांचना चाहता हूं कि एपीआई कॉलर पहुंच स्तर की धारणा का उपयोग करके मार्ग तक पहुंचने के लिए अधिकृत है या नहीं। किसी भी सलाह की सराहना की जाएगी।

+0

कई हाथों से एक मालिशर के रूप में कनेक्ट/व्यक्त करने के बारे में सोचें, प्रत्येक हाथ एक मिडलवेयर है जो आपके अनुरोध को सही प्रतिक्रिया में मालिश करता है। तो रयान ओल्ड्स क्या कहता है 100% सही है। ;) – Pickels

उत्तर

39

आप कुछ तरीकों से जो कर सकते हैं वह कर सकते हैं।

यह एक मिडलवेयर रखेगा जो राउटर को मारने से पहले उपयोग किया जाएगा। सुनिश्चित करें कि राउटर app.use() के साथ जोड़ा गया है। मिडलवेयर आदेश महत्वपूर्ण है।

app.use(function(req, res, next) { 
    // Put some preprocessing here. 
    next(); 
}); 
app.use(app.router); 

आप रूट मिडलवेयर का भी उपयोग कर सकते हैं।

var someFunction = function(req, res, next) { 
    // Put the preprocessing here. 
    next(); 
}; 
app.post("/api/v1/client", someFunction, Client.create); 

यह उस मार्ग के लिए एक प्रीप्रोसेसिंग चरण करेगा।

नोट: सुनिश्चित करें कि आपके app.use() आमंत्रण आपकी रूट परिभाषाओं से पहले हैं। एक मार्ग को परिभाषित करने से स्वचालित रूप से ऐड.उटर को मिडलवेयर श्रृंखला में जोड़ दिया जाता है, जो इसे उपयोगकर्ता परिभाषित मिडलवेयर से आगे रख सकता है।

+0

बहुत बहुत धन्यवाद, यह एक शानदार जवाब है! –

+0

सुंदर! धन्यवाद, रयान – luigi7up

+0

@ रयान-बूढ़े, मैं 'सामग्री-प्रकार' कैसे देखूं? मुझे केवल JSON पर समाप्ति सेट करना है, सभी responce में नहीं। –