Friday, June 21, 2024

Express JS Routing

जब भी आप कोई वेब एप्लीकेशन डेवलप करते हैं तो आपके सर्वर पर कई तरह के फाइल होते हैं और वह फाइल अलग-अलग फोल्डर में पड़े भी हो सकते हैं उदाहरण के लिए आपके सर्वर पर इमेज फाइल पीडीएफ फाइल म्यूजिक फाइल और भी अन्य तरह के फाइल हो सकते हैं तो सर्वर से उस फाइल को डाउनलोड करने के लिए या read करने के लिए आपको Routing का कॉन्सेप्ट आना चाहिए Express JS के अंतर्गत आप रूटिंग का कार्य सरलता पूर्वक कर सकते हैं इसी बारे में हम इस पोस्ट में देखेंगे।

पिछले पोस्ट में हमने देखा कि कैसे हम एक सरल Express JS का एप्लीकेशन बना सकते हैं जिसमें हमने Hello Express JS को Server की मदद से प्रिंट कराया था आज हम इस कोड में कुछ यूआरएल को डिफाइन करेंगे और उन यूआरएल को हम रूटिंग की मदद से रिसोर्स को प्राप्त करेंगे।

Where is JS code run in Express JS

एक बात ध्यान रखने लायक है कि आप यद्यपि जावास्क्रिप्ट में कोडिंग कर रहे हैं लेकिन यह सारा कोड सर्वर साइड कोडिंग है इसका अर्थ यह है कि यह कोड आपके सर्वर पर Run होगा और सर्वर में ही कहीं ना कहीं यह स्क्रिप्ट पडा हुआ होगा और इस स्क्रिप्ट को JavaScript रनटाइम एनवायरमेंट के सर्वर एनवायरमेंट में Run होगा इसको रन करने के लिए हमें नोड जेएस का एनवायरमेंट चाहिए दोबारा इसलिए रिपीट कर रहा हूं ताकि यह कंफ्यूजन ना रहे की जावास्क्रिप्ट में कोड लिखा हुआ होने के कारण आपके ब्राउज़र में Run होगा ऐसा नहीं होगा ब्राउज़र के द्वारा रिक्वेस्ट सर्वर पर भेजा जाएगा और सर्वर इस जावास्क्रिप्ट के सर्वर साइड कोड को Server के भीतर ही रन करेगा

Express App

जैसा कि हमने देखा कि किस तरह से हम एक app नामक ऑब्जेक्ट या वेरिएबल को एक्सप्रेस फ्रेमवर्क की मदद से बनाते हैं और यह सबसे महत्वपूर्ण ऑब्जेक्ट है इसी की मदद से हम Server के ऊपर गेट रिक्वेस्ट या पोस्ट रिक्वेस्ट भेज सकते हैं app ऑब्जेक्ट के साथ कई सारे मेथड है जैसे गेट पोस्ट इत्यादि इनका उपयोग करके हम सर्वर संबंधित सारी कोडिंग करेंगे।

app.get(url, callback) ;

नेटवर्क संबंधी कार्य के लिए कॉल बैक फंक्शन के भीतर आपको रिक्वेस्ट ऑब्जेक्ट और रिस्पांस ऑब्जेक्ट पैरामीटर के रूप में प्राप्त हो जाते हैं इन ऑब्जेक्ट्स का उपयोग करके आप अपने तट संबंधित कार्य को कर सकते हैं

एप्लीकेशन को हमेशा किसी पोर्ट पर रन कराया जाता है अतः आप अपने कोड में हमेशा यह अंतिम लाइन जरूर लिखें

app.listen(3000);

What is Base URL

रूटिंग को समझने के लिए सबसे पहले आपको बेस यूआरएल के कांसेप्ट को समझना चाहिए base url को हमेशा फारवर्ड सिलेक्ट से दिखाया जाता है अगर आपने केवल '/' लिखा है तो वह आपकी वेबसाइट के बेस यूआरएल को रिप्रेजेंट करेगा। आपके यूआरएल के पोर्ट तक के जितने भी हिस्से हैं उतने हिस्से को बेस यूआरएल रिप्रेजेंट करता है।  जब सर्वर फॉरवार्ड स्लैश देखता है तो वह उसक बेस यूआरएल में परिवर्तित कर देता है

Router package in Express

रूटिंग का मूल विषय यूआरएल से जुड़ा हुआ है अलग-अलग तरह के यूआरएल किसी वेबसाइट के अलग-अलग संसाधन या रिसोर्स को प्राप्त करने के लिए माध्यम बनते हैं। स्पष्ट है की रूटिंग का कंसेप्ट और उपयोग महत्वपूर्ण भूमिका निभाते हैं अतः वेब फ्रेमवर्क के भीतर रूटिंग से संबंधित कार्यों को सरल बनाने के लिए राउटर प्रदान किया जाता है एक्सप्रेस जेएस वेब फ्रेमवर्क के भीतर भी router नाम का एक पैकेज उपलब्ध है जिसकी सहायता से हम अपने वेब एप्लीकेशन के भीतर रूटिंग का कार्य सरलता प्रयोग कर सकते हैं इस बात को हम एक उदाहरण से समझते हैं मान लीजिए कि आपने एक वेब एप्लीकेशन बनाया और यह वेबसाइट या वेब एप्लीकेशन किसी शिक्षण संस्था से जुड़ा हुआ है स्पष्ट है की वेबसाइट पर विभिन्न प्रकार के कोर्सेज से जुड़ा हुआ पेज होगा जब कोई यूजर अलग-अलग कोर्स जैसे एंड्राइड रिएक्ट पाइथन माइक्रोसॉफ्ट वर्ड इत्यादि से संबंधित अलग-अलग पेज बनाने होंगे और इन पेज के लिए हमें रूटिंग डिफाइन करना होगा । अभिप्राय है कि अगर हम केवल कोर्स पर विचार करें तो कोर्स से संबंधित कई सारे रूटिंग बनेंगे । इसी तरह अगर शिक्षण संस्थान के एडमिन से जुड़ा पेज पर विचार करें तो उसमें भी कई तरह के पेज बनेंगे । शिक्षकों के संबंध में भी फैकल्टी के लिए अलग-अलग कई तरह के पेज बनाने होंगे । अतः हम अपने वेबसाइट को कई भागों में भी वर्गीकृत कर प्रत्येक वर्ग के अंतर्गत कई सारे पेज बनाते हैं । अतः हमें कई सारे रूटिंग बनाने होंगे । स्पष्ट है कि यह कार्य अगर किया जाए तो बहुत ही जटिल हो इस कार्य को सरल बनाने के लिए राउटर पैकेज को प्रदान किया गया है । अब हम आगे देखेंगे कि कोर्सेज से संबंधित रूटिंग का कार्य कैसे हम किसी राउटर पैकेज से कर सकते हैं । इसके लिए हम अपने प्रोजेक्ट के भीतर कोर्सेज नाम का एक जावास्क्रिप्ट पेज बनाएंगे इस कोर्सेज पेज के भीतर हम राउटर पैकेज को इंक्लूड करेंगे । इसके लिए हम रिक्वायर्ड फंक्शन का उसे करेंगे आप संबंधित कोर्ट को नीचे देख सकते हैं।

एक बार जब हमने राउटर का ऑब्जेक्ट बना लिया तो उसके विभिन्न प्रकार के प्रॉपर्टी और मैथर्ड का उपयोग कर हम अपने रूटिंग कार्य को सरल कर सकते हैं मुख्य रूप से हम GETऔर POST मेथड का use करेंगे।

अब नीचे के स्टेटमेंट को उसे करके इस कोर्सेज पेज को इंडेक्स पेज के साथ जोड़ देंगे ।

exports.module = courses;

दूसरे शब्दों में हम इस पेज को एक्सपोर्ट कर देंगे ताकि यह पेज index.js पेज में use किया जा सके या किसी अन्य पेज में भी उसे यूज किया जा सके ।

इंडेक्स पेज के भीतर जो कोडिंग करनी है उस पर विचार करना है इंडेक्स पेज के भीतर हम उसे Middleware का use करेंगे मिडिल वेयर की सहायता से हम अपने कोर्सेज पेज में उपलब्ध जितने भी रूटिंग है उनको एक्सेस या प्राप्त कर सकते हैं आप नीचे के दिए गए कोड पर विचार करें सबसे पहले हमने कोर्सेज पेज को प्राप्त किया फिर हमने middleware का उपयोग करके Courses पेज के रूट को डिफाइन किया

इसी तरह एडमिन पेज के राउंड को भी हम अपने इंडेक्स पेज में मिडिलवारे की सहायता से जोड़ सकते हैं और एडमिन के लिए एक अलग पेज बनाकर उसमें जितने भी रूटिंग की जरूरत है उसकी कोडिंग हम वहां कर लेंगे ।

© अजीत कुमार, सर्वाधिकार सुरक्षित।

No comments:

Post a Comment

Hot Topics