इस ट्यूटोरियल में, हम एक्सप्रेस फ्रेमवर्क का अध्ययन करेंगे। यह फ्रेमवर्क इस तरह से बनाया गया है कि यह एक न्यूनतम और लचीली Node.js वेब एप्लिकेशन फ्रेमवर्क के रूप में कार्य करता है, जो एकल और गुणन, और हाइब्रिड वेब एप्लिकेशन के निर्माण के लिए एक मजबूत सेट प्रदान करता है।
इस ट्यूटोरियल में, आप सीखेंगे-
- Express.js क्या है?
- एक्सप्रेस स्थापित करना और उपयोग करना
- रूट क्या हैं?
- नमूना वेब सर्वर express.js का उपयोग कर
Express.js क्या है?
Express.js एक नोड js वेब एप्लिकेशन सर्वर फ्रेमवर्क है, जो विशेष रूप से सिंगल-पेज, मल्टी-पेज और हाइब्रिड एप्लिकेशन अनुप्रयोगों के निर्माण के लिए बनाया गया है।
यह नोड के लिए मानक सर्वर ढांचा बन गया है ।js. एक्सप्रेस एमईएन स्टैक के रूप में जाना जाने वाला कुछ का बैकेंड हिस्सा है।
MEAN गतिशील वेब साइटों और वेब अनुप्रयोगों के निर्माण के लिए एक स्वतंत्र और खुला स्रोत जावास्क्रिप्ट सॉफ्टवेयर स्टैक है जिसमें निम्नलिखित घटक हैं;
1) MongoDB - मानक NoSQL डेटाबेस
2) Express.js - डिफ़ॉल्ट वेब अनुप्रयोगों की रूपरेखा
3) Angular.js - वेब अनुप्रयोगों के लिए उपयोग किया जाने वाला जावास्क्रिप्ट MVC फ्रेमवर्क
4) Node.js - स्केलेबल सर्वर-साइड और नेटवर्किंग अनुप्रयोगों के लिए उपयोग किया जाने वाला फ्रेमवर्क।
Express.js फ्रेमवर्क एक ऐसे एप्लिकेशन को विकसित करना बहुत आसान बनाता है जिसका उपयोग कई प्रकार के अनुरोधों जैसे GET, PUT और POST और DELETE अनुरोधों को संभालने के लिए किया जा सकता है।
एक्सप्रेस स्थापित करना और उपयोग करना
एक्सप्रेस को नोड पैकेज मैनेजर के माध्यम से स्थापित किया जाता है। यह कमांड लाइन में निम्नलिखित लाइन को निष्पादित करके किया जा सकता है
npm स्थापित एक्सप्रेस
उपरोक्त आदेश आवश्यक एक्सप्रेस मॉड्यूल डाउनलोड करने और तदनुसार उन्हें स्थापित करने के लिए नोड पैकेज प्रबंधक से अनुरोध करता है।
चलो हमारे नए स्थापित एक्सप्रेस ढांचे का उपयोग करें और एक सरल "हैलो वर्ल्ड" एप्लिकेशन बनाएं।
हमारा एप्लिकेशन एक साधारण सर्वर मॉड्यूल बनाने जा रहा है जो पोर्ट नंबर 3000 पर सुनेगा। हमारे उदाहरण में, यदि इस पोर्ट नंबर पर ब्राउज़र के माध्यम से अनुरोध किया जाता है, तो सर्वर एप्लिकेशन क्लाइंट को 'हैलो' वर्ल्ड 'रिस्पांस भेजेगा। ।
var express=require('express');var app=express();app.get('/',function(req,res){res.send('Hello World!');});var server=app.listen(3000,function() {});
कोड स्पष्टीकरण:
- हमारे कोड की पहली पंक्ति में, हम "एक्सप्रेस मॉड्यूल" को शामिल करने के लिए आवश्यक फ़ंक्शन का उपयोग कर रहे हैं।
- इससे पहले कि हम एक्सप्रेस मॉड्यूल का उपयोग शुरू कर सकें, हमें इसकी एक वस्तु बनाने की आवश्यकता है।
- यहां हम एक कॉलबैक फ़ंक्शन बना रहे हैं। यह फ़ंक्शन तब भी कहा जाएगा जब कोई भी हमारे वेब एप्लिकेशन की जड़ तक पहुंचेगा जो http: // localhost: 3000 है । कॉलबैक फ़ंक्शन का उपयोग वेब पेज पर स्ट्रिंग 'हैलो वर्ल्ड' भेजने के लिए किया जाएगा।
- कॉलबैक फ़ंक्शन में, हम क्लाइंट को वापस "हैलो वर्ल्ड" स्ट्रिंग भेज रहे हैं। वेब पेज पर सामग्री वापस भेजने के लिए 'रेस' पैरामीटर का उपयोग किया जाता है। यह 'रेस' पैरामीटर कुछ ऐसा है जो 'अनुरोध' मॉड्यूल द्वारा प्रदान किया जाता है ताकि वेब पेज पर सामग्री वापस भेजने में सक्षम किया जा सके।
- हम पोर्ट नंबर 3000 पर क्लाइंट अनुरोधों को सुनने के लिए हमारे सर्वर एप्लिकेशन को बनाने के लिए फंक्शन ऑफ सुनने का उपयोग कर रहे हैं। आप यहां उपलब्ध किसी भी पोर्ट को निर्दिष्ट कर सकते हैं।
यदि कमांड को सफलतापूर्वक निष्पादित किया जाता है, तो ब्राउज़र में अपना कोड चलाते समय निम्न आउटपुट दिखाया जाएगा।
आउटपुट:
आउटपुट से,
- आप स्पष्ट रूप से देख सकते हैं कि अगर हम पोर्ट 3000 पर लोकलहोस्ट के URL पर ब्राउज़ करते हैं, तो आप पृष्ठ पर प्रदर्शित स्ट्रिंग 'हैलो वर्ल्ड' देखेंगे।
- क्योंकि हमारे कोड में हमने विशेष रूप से सर्वर पर पोर्ट नंबर 3000 को सुनने के लिए उल्लेख किया है, हम इस URL पर ब्राउज़ करते समय आउटपुट देख सकते हैं।
रूट क्या हैं?
रूटिंग उस तरीके को निर्धारित करता है जिसमें कोई एप्लिकेशन किसी विशेष समापन बिंदु पर क्लाइंट अनुरोध का जवाब देता है।
उदाहरण के लिए, एक ग्राहक विभिन्न URL जैसे कि नीचे दिखाए गए लोगों के लिए GET, POST, PUT या DELETE http अनुरोध कर सकता है;
http://localhost:3000/Bookshttp://localhost:3000/Students
उपरोक्त उदाहरण में,
- यदि पहले URL के लिए GET अनुरोध किया जाता है, तो प्रतिक्रिया आदर्श रूप से पुस्तकों की एक सूची होनी चाहिए।
- यदि दूसरे URL के लिए GET अनुरोध किया जाता है, तो प्रतिक्रिया आदर्श रूप से छात्रों की एक सूची होनी चाहिए।
- इसलिए जो URL एक्सेस किया गया है, उसके आधार पर वेबसर्वर पर एक अलग कार्यक्षमता को आमंत्रित किया जाएगा, और तदनुसार, प्रतिक्रिया क्लाइंट को भेजी जाएगी। यह रूटिंग की अवधारणा है।
प्रत्येक मार्ग में एक या एक से अधिक हैंडलर फ़ंक्शन हो सकते हैं, जो रूट से मेल खाने पर निष्पादित होते हैं।
एक मार्ग के लिए सामान्य वाक्यविन्यास नीचे दिखाया गया है
app.METHOD(PATH, HANDLER)
जिसमें,
1) ऐप एक्सप्रेस मॉड्यूल का एक उदाहरण है
2) METHOD एक HTTP अनुरोध विधि है (GET, POST, PUT या DELETE)
3) PATH सर्वर पर एक पथ है।
4) हैन्डलर मार्ग से मिलान होने पर निष्पादित कार्य है।
आइए एक उदाहरण देखें कि हम एक्सप्रेस में मार्गों को कैसे लागू कर सकते हैं। हमारे उदाहरण के रूप में 3 मार्गों का निर्माण होगा
- एक / नोड मार्ग जो स्ट्रिंग "ट्यूटोरियल ऑन नोड" प्रदर्शित करेगा यदि यह मार्ग एक्सेस किया गया है
- एक / कोणीय मार्ग जो स्ट्रिंग "ट्यूटोरियल ऑन एंगुलर" प्रदर्शित करेगा यदि यह मार्ग एक्सेस किया जाता है
- एक डिफ़ॉल्ट मार्ग / जो स्ट्रिंग को प्रदर्शित करेगा "गुरु99 ट्यूटोरियल में आपका स्वागत है।"
हमारा मूल कोड पिछले उदाहरणों जैसा ही रहेगा। नीचे का स्निपेट यह दिखाने के लिए एक ऐड-ऑन है कि रूटिंग को कैसे लागू किया जाता है।
var express = require('express');var app = express();app.route('/Node').get(function(req,res){res.send("Tutorial on Node");});app.route('/Angular').get(function(req,res){res.send("Tutorial on Angular");});app.get('/',function(req,res){res.send('Welcome to Guru99 Tutorials');}));
कोड स्पष्टीकरण:
- यहाँ हम एक मार्ग को परिभाषित कर रहे हैं यदि URL http: // localhost: 3000 / Node ब्राउज़र में चुना गया है। मार्ग में, हम एक कॉलबैक फ़ंक्शन संलग्न कर रहे हैं, जिसे तब कहा जाएगा जब हम नोड URL पर ब्राउज़ करेंगे।
फ़ंक्शन के 2 पैरामीटर हैं।
- हमारे द्वारा उपयोग किया जाने वाला मुख्य पैरामीटर 'रेस' पैरामीटर है, जिसका उपयोग क्लाइंट को जानकारी भेजने के लिए किया जा सकता है।
- 'Req' पैरामीटर में किए गए अनुरोध के बारे में जानकारी है। कभी-कभी अतिरिक्त पैरामीटर को अनुरोध के भाग के रूप में भेजा जा सकता है, और इसलिए 'पुनः' पैरामीटर का उपयोग अतिरिक्त पैरामीटर को खोजने के लिए किया जा सकता है।
- अगर स्ट्रिंग मार्ग चुना जाता है तो हम स्ट्रिंग "ट्यूटोरियल ऑन नोड" को क्लाइंट को वापस भेजने के लिए सेंड फंक्शन का उपयोग कर रहे हैं।
- यहाँ हम एक मार्ग को परिभाषित कर रहे हैं यदि URL http: // localhost: 3000 / Angular ब्राउज़र में चुना गया है। मार्ग के लिए, हम एक कॉलबैक फ़ंक्शन संलग्न कर रहे हैं, जिसे जब हम कोणीय URL पर ब्राउज़ करते हैं तो कॉल किया जाएगा।
- अगर ग्राहक को कोणीय मार्ग चुना जाता है, तो हम स्ट्रिंग "ट्यूटोरियल ऑन एंगुलर" पर वापस भेजने के लिए सेंड फंक्शन का उपयोग कर रहे हैं।
- यह डिफ़ॉल्ट मार्ग है जिसे चुना जाता है जब एक आवेदन के मार्ग पर पहुंचता है - http: // localhost: 3000 । जब डिफ़ॉल्ट मार्ग चुना जाता है, तो संदेश "Welcome to Guru99 Tutorials" क्लाइंट को भेजा जाएगा।
यदि कमांड को सफलतापूर्वक निष्पादित किया जाता है, तो ब्राउज़र में अपना कोड चलाते समय निम्न आउटपुट दिखाया जाएगा।
आउटपुट:
आउटपुट से,
- आप यह स्पष्ट रूप से देख सकते हैं कि यदि हम पोर्ट 3000 पर लोकलहोस्ट के URL पर ब्राउज़ करते हैं, तो आप पृष्ठ पर प्रदर्शित 'वेलकम टू गुरु99 ट्यूटोरियल्स' देखेंगे।
- क्योंकि हमारे कोड में, हमने उल्लेख किया है कि हमारा डिफ़ॉल्ट URL इस संदेश को प्रदर्शित करेगा।
आउटपुट से,
- आप देख सकते हैं कि यदि URL को / Node में बदल दिया गया है, तो संबंधित नोड मार्ग चुना जाएगा और स्ट्रिंग "ट्यूटोरियल ऑन नोड" प्रदर्शित होगा।
आउटपुट से,
- आप देख सकते हैं कि यदि URL को / Angular में बदल दिया गया है, तो संबंधित नोड मार्ग चुना जाएगा और स्ट्रिंग "Tutorial on Angular" प्रदर्शित किया जाएगा।
नमूना वेब सर्वर express.js का उपयोग कर
हमारे उपरोक्त उदाहरण से, हमने देखा है कि हम कैसे रूटिंग के आधार पर दिखा सकते हैं कि किस आउटपुट पर क्या निर्णय लिया जा सकता है। इस तरह के रूटिंग का उपयोग अधिकांश आधुनिक-वेब अनुप्रयोगों में किया जाता है। वेब सर्वर का दूसरा भाग नोड js में टेम्प्लेट का उपयोग करने के बारे में है।
त्वरित ऑन-द-फ्लाई नोड एप्लिकेशन बनाते समय, एप्लिकेशन के लिए टेम्पलेट का उपयोग करना एक आसान और तेज़ तरीका है। टेम्प्लेट बनाने के लिए बाजार में कई रूपरेखाएं उपलब्ध हैं। हमारे मामले में, हम टेम्पलेटिंग के लिए जेड फ्रेमवर्क का उदाहरण लेंगे।
जेड नोड प्रबंधक के माध्यम से स्थापित हो जाता है। यह कमांड लाइन में निम्नलिखित लाइन को निष्पादित करके किया जा सकता है
npm स्थापित जेड
उपरोक्त कमांड नोड पैकेज प्रबंधक से आवश्यक जेड मॉड्यूल डाउनलोड करने और उन्हें तदनुसार स्थापित करने का अनुरोध करता है।
नोट: नोड जेड के नवीनतम संस्करण में पदावनत किया गया है। इसके बजाय, पग का उपयोग करें।
आइए हमारे नए स्थापित जेड फ्रेमवर्क का उपयोग करें और कुछ बुनियादी टेम्पलेट बनाएं।
चरण 1) पहला कदम एक जेड टेम्पलेट बनाना है। Index.jade नामक एक फाइल बनाएं और नीचे दिए गए कोड को डालें। "दृश्य" फ़ोल्डर में फ़ाइल बनाने के लिए सुनिश्चित करें
- यहां हम अनुमान लगा रहे हैं कि जब यह टेम्प्लेट मंगवा लिया जाएगा तो पेज का शीर्षक बदल दिया जाएगा।
- हम यह भी निर्दिष्ट कर रहे हैं कि हेडर टैग में पाठ जेड टेम्पलेट में जो भी पास हो जाता है उसे बदल दिया जाएगा।
var express=require('express');var app=express();app.set('view engine','jade');app.get('/',function(req,res){res.render('index',{title:'Guru99',message:'Welcome'})});var server=app.listen(3000,function() {});
कोड स्पष्टीकरण:
- एप्लिकेशन में निर्दिष्ट करने वाली पहली चीज़ "दृश्य इंजन" है जिसका उपयोग टेम्पलेट्स को प्रस्तुत करने के लिए किया जाएगा। चूंकि हम अपने टेम्प्लेट को रेंडर करने के लिए जेड का उपयोग करने जा रहे हैं, इसलिए हम उसी के अनुसार इसे निर्दिष्ट करते हैं।
- रेंडर फ़ंक्शन का उपयोग वेब पेज को रेंडर करने के लिए किया जाता है। हमारे उदाहरण में, हम उस टेम्पलेट (index.jade) का प्रतिपादन कर रहे हैं जो पहले बनाया गया था।
- हम "गुरु" और "वेलकम" के मानों को क्रमशः "शीर्षक" और "संदेश" में पास कर रहे हैं। इन मानों को 'शीर्षक', और 'संदेश' मापदंडों को index.jade टेम्पलेट में घोषित किया जाएगा।
यदि कमांड को सफलतापूर्वक निष्पादित किया जाता है, तो ब्राउज़र में अपना कोड चलाते समय निम्न आउटपुट दिखाया जाएगा।
आउटपुट:
आउटपुट से,
- हम देख सकते हैं कि पृष्ठ का शीर्षक "गुरु99" पर सेट हो जाता है और पृष्ठ का शीर्षक "वेलकम" पर सेट हो जाता है।
- यह जेड टेम्पलेट के कारण होता है, जो हमारे नोड जेएस एप्लिकेशन में लागू होता है।
सारांश
- एक्सप्रेस फ्रेमवर्क सबसे आम ढांचा है जिसका उपयोग नोड जेएस अनुप्रयोगों के विकास के लिए किया जाता है। एक्सप्रेस फ्रेमवर्क नोड.जेएस ढांचे के शीर्ष पर बनाया गया है और सर्वर-आधारित अनुप्रयोगों के तेजी से ट्रैकिंग विकास में मदद करता है।
- किए गए अनुरोधों के आधार पर, उपयोगकर्ताओं को वेब अनुप्रयोगों के विभिन्न भागों में भेजने के लिए उपयोग किया जाता है। उपयोगकर्ता को दिखाए जाने की आवश्यकता के आधार पर प्रत्येक मार्ग की प्रतिक्रिया भिन्न हो सकती है।
- कुशल तरीके से सामग्री को इंजेक्ट करने के लिए टेम्प्लेट का उपयोग किया जा सकता है। जेड सबसे लोकप्रिय टेम्प्लेटिंग इंजनों में से एक है जिसका उपयोग Node.js अनुप्रयोगों में किया जाता है।