मुझे पता है कि यह एक पुरानी पोस्ट है... सिर्फ नोडज के लिए अतिरिक्त मॉड्यूल के बिना ऑरैकल से संवाद करने के लिए एक निश्चित तरीके का उल्लेख करना चाहता था।
ऑरैकल सेट करें ताकि यह http अनुरोध बना और प्राप्त कर सके। ऐसा करने के कुछ तरीके हैं:
एपीजी गेटवे को चालू करना सबसे आसान है:
इसके अलावा आप modplsq सेटअप कर सकते हैं:
या शीर्ष श्रोता:
फिर नोड js में एक मानक http.get करें:
http.get("http://localhost/accessor/myschema.my_procedure?x=1&y=2", function(res) {
console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
console.log("Got error: " + e.message);
});
जो भी दृष्टिकोण ... सुरक्षित ओरेकल ताकि यह केवल नोडज सर्वर के आईपी पते का जवाब दे। तो अगर लोकलहोस्ट पर चल रहा है:
if owa_util.get_cgi_env('REMOTE_ADDR') = '127.0.0.1' then
--ok
else
-- fail
end if;
हर दूसरे पैकेज और प्रक्रिया के लिए कॉल को भी ब्लॉक करें। आपके द्वारा अपनाए गए पथ के आधार पर ऐसा करने के कुछ तरीके हैं।
सुनिश्चित करें कि आप इसे कम से कम करते हैं:
- वस्तुओं की एक सफेद सूची बनाएं जिन्हें वेब से बुलाया जा सकता है
- आवश्यकता है कि सभी url में स्कीमा नाम हो जैसे:myuser.myprocedure
- सुनिश्चित करें कि url के पहले भाग (क्वेरी पथ तक) में केवल a-z 0-9 है
- वास्तव में एक अच्छी श्वेत सूची इनमें से अधिकांश वस्तुओं का ध्यान रखेगी
यह आपके पास है... चिंता करने की कोई आवश्यकता नहीं है कि कोई मॉड्यूल अगली रिलीज़ के साथ काम करना बंद कर देगा या काम करना बंद कर देगा।
AND...आप Oracle से Node उपयोग में आसानी से संचार कर सकते हैं:
- apex_web_service.make_rest_request
- utl_http