मैं node.js के लिए नया हूं और व्यक्त करता हूं और थोड़ी देर के लिए उनके साथ प्रयोग कर रहा हूं। अब मैं अनुरोध निकाय को पार्स करने से संबंधित एक्सप्रेस ढांचे के डिजाइन से उलझन में हूं। एक्सप्रेस की आधिकारिक गाइड से:Node.js शरीर का सही उपयोग व्यक्त करें पार्सर मिडलवेयर
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(logErrors);
app.use(clientErrorHandler);
app.use(errorHandler);
सभी मिडलवेयर स्थापित करने के बाद, तो हम मार्ग है कि हम हैंडल करना चाहते जोड़ें:
app.post('/test', function(req, res){
//do something with req.body
});
इस दृष्टिकोण के साथ समस्या यह है कि सभी अनुरोध शरीर मार्ग वैधता की जांच करने से पहले पहले पार्स किया जाएगा। अमान्य अनुरोधों के शरीर को पार्स करने में यह बहुत अक्षम है। और भी अधिक है, हम अपलोड का संसाधन सक्षम करता है, तो:
app.use(express.bodyParser({uploadDir: '/temp_dir'}));
किसी भी ग्राहक किसी भी फाइल को अपलोड करके सर्वर बौछार कर सकते हैं (किसी भी मार्ग/पथ के लिए अनुरोध भेज कर !!), जो सभी कार्रवाई की जाएगी और में रखा '/ temp_dir'। मुझे विश्वास नहीं है कि इस डिफ़ॉल्ट विधि को व्यापक रूप से प्रचारित किया जा रहा है!
हम निश्चित रूप bodyParser समारोह जब मार्ग को परिभाषित करने का उपयोग कर सकते हैं:
app.post('/test1', bodyParser, routeHandler1);
app.post('/test2', bodyParser, routeHandler2);
या यहाँ तक कि शायद प्रत्येक समारोह है कि मार्ग को संभालने में शरीर को पार्स। हालांकि, यह करने के लिए कठिन है।
क्या सभी वैध (परिभाषित) मार्गों के लिए express.bodyParser का उपयोग करने का कोई बेहतर तरीका है, और केवल कोडों की पुनरावृत्ति के बिना, चयनित मार्गों पर फ़ाइल अपलोड हैंडलिंग क्षमता का उपयोग करने के लिए कोई बेहतर तरीका है?
वाह, एक साल पहले से अपने जवाब की समीक्षा हाल के घटनाक्रमों को शामिल करने के लिए वोट दें पुन: 'bodyParser' –
" शुरुआती कोड आप दिन 1 और उत्पादन कोड कुशल है उस पर काम कर लानत बात प्राप्त करने में मदद करने के लिए और सुरक्षित अक्सर बहुत अलग होते हैं। " तथास्तु। –