2012-10-18 17 views
15

मैं /api एंडपॉइंट बनाने के लिए अंधेरे से प्रॉक्सी कर रहा हूं और विरासत को पीछे और आगे प्रतिक्रियाएं रीस्टफुल एपीआई सिस्टम (रुबी में लिखी गई है और एक अलग पर होस्ट की गई है) डोमेन)।एक्सप्रेस जेएस .all() विधि का प्रयोग करें: पता लगाएं कि कौन सी वीईआरबी वास्तव में उपयोग की गई थी

यह एक मध्यस्थ संक्रमणकालीन चरण है, इसलिए इसे केवल काम करना चाहिए।

तो, मैं देखता हूं कि इसे app.all() के साथ आसानी से कैसे प्राप्त किया जा सकता है। लेकिन जैसा कि एपीआई रीस्टफुल है, मुझे अनुरोध के लिए इस्तेमाल किए गए HTTP क्रिया को भी बनाए रखना है - तो, ​​क्या मैं इसे req ऑब्जेक्ट से ढूंढ सकता हूं? यदि नहीं, तो निश्चित रूप से मैं GET, PUT, POST, DELETE, OPTIONS के लिए 5 हैंडलर सब्सक्राइब कर सकता हूं, लेकिन इससे बचने के लिए यह बेहतर होगा।

इसके अलावा, मैं अनुरोध निकाय (क्वेरी स्ट्रिंग और पेलोड) से कैसे निपटूं? मुझे लगता है कि मुझे पार्स किए गए req.query से मैन्युअल रूप से क्वेरी स्ट्रिंग को फिर से बनाने की आवश्यकता होगी और req.bodyrequesthttps://github.com/mikeal/request को पास करें - क्या यह सही है?

उत्तर

24

मुझे लगता है कि आपको सभी की आवश्यकता req.method है। और शरीर से निपटने के लिए, express.bodyParser() मिडलवेयर जोड़ें।

+0

सही, मुझे पहले से ही यह पता चला है :) – Guard

+0

जीईटी और पोस्ट पैराम्स के साथ क्या करना है इसके बारे में कोई सुझाव? – Guard

+0

पैरा प्राप्त करें req.query है। पोस्ट पैराम्स req.body है (अगर मिडलवेयर के साथ पार्स किया गया है)। क्या आपने एक्सप्रेसज गाइड की जांच की है? – Anatoliy

3

यदि आप सिर्फ अनुरोध पास करना चाहते हैं और प्रतिक्रिया वापस करना चाहते हैं तो आप प्रॉक्सी ढूंढ रहे हैं।

मैं node-http-proxy की जांच करने की सिफारिश करता हूं। बस प्रॉक्सी लाइब्रेरी लोड करें, एक प्रॉक्सी init, और प्रॉक्सी सभी अनुरोधों को लोड करें।

+0

आशाजनक लग रहा है। लेकिन बारीकियां हैं। रिमोट एंड की एक अलग संरचना है ('nodeapp.com/api/v1/something? Get = var' 'api.rubyapp.com/v1/something से संबंधित है? Get = var')। यह मुझे पूरी तरह से स्पष्ट नहीं है कि क्वेरी स्ट्रिंग के साथ क्या होगा (विशेष रूप से यदि मेरे पास जीईटी और पोस्ट पैराम का मिश्रण है) – Guard