Node.js एक्सप्रेस फ्रेमवर्क ट्यूटोरियल - 10 मिनट में सीखें

इस ट्यूटोरियल में, हम एक्सप्रेस फ्रेमवर्क का अध्ययन करेंगे। यह फ्रेमवर्क इस तरह से बनाया गया है कि यह एक न्यूनतम और लचीले Node.js वेब एप्लिकेशन फ्रेमवर्क के रूप में कार्य करता है, जो सिंगल और मल्टीपेज, और हाइब्रिड वेब एप्लिकेशन बनाने के लिए सुविधाओं का एक मजबूत सेट प्रदान करता है।

एक्सप्रेस.जेएस क्या है?

Express.js एक नोड जेएस वेब अनुप्रयोग सर्वर फ्रेमवर्क है, जिसे विशेष रूप से एकल-पृष्ठ, बहु-पृष्ठ और हाइब्रिड वेब अनुप्रयोगों के निर्माण के लिए डिज़ाइन किया गया है।

यह node.js के लिए मानक सर्वर फ्रेमवर्क बन गया है। एक्सप्रेस MEAN स्टैक के नाम से जानी जाने वाली किसी चीज़ का बैकएंड हिस्सा है।

MEAN एक स्वतंत्र और खुला स्रोत है Javaलिपि गतिशील वेब साइटों और वेब अनुप्रयोगों के निर्माण के लिए सॉफ्टवेयर स्टैक जिसमें निम्नलिखित घटक हैं;

1) MongoDB – मानक NoSQL डेटाबेस

2) एक्सप्रेस.जेएस – डिफ़ॉल्ट वेब एप्लिकेशन फ्रेमवर्क

3) एंगुलर.जेएस - Javaवेब अनुप्रयोगों के लिए प्रयुक्त स्क्रिप्ट MVC फ्रेमवर्क

4) Node.js - स्केलेबल सर्वर-साइड और नेटवर्किंग अनुप्रयोगों के लिए उपयोग किया जाने वाला फ्रेमवर्क।

Express.js फ्रेमवर्क एक ऐसा अनुप्रयोग विकसित करना बहुत आसान बनाता है जिसका उपयोग GET, PUT, POST और DELETE अनुरोधों जैसे कई प्रकार के अनुरोधों को संभालने के लिए किया जा सकता है।

एक्सप्रेस को स्थापित करना और उपयोग करना

एक्सप्रेस नोड पैकेज मैनेजर के माध्यम से स्थापित होता है। यह कमांड लाइन में निम्न पंक्ति को निष्पादित करके किया जा सकता है

एनपीएम इंस्टॉल एक्सप्रेस

उपरोक्त कमांड नोड पैकेज मैनेजर से आवश्यक एक्सप्रेस मॉड्यूल डाउनलोड करने और उन्हें तदनुसार स्थापित करने का अनुरोध करता है।

आइए अपने नए स्थापित एक्सप्रेस फ्रेमवर्क का उपयोग करें और एक सरल "हैलो वर्ल्ड" एप्लिकेशन बनाएं।

हमारा एप्लिकेशन एक सरल सर्वर मॉड्यूल बनाने जा रहा है जो पोर्ट नंबर 3000 पर सुनेगा। हमारे उदाहरण में, यदि इस पोर्ट नंबर पर ब्राउज़र के माध्यम से अनुरोध किया जाता है, तो सर्वर एप्लिकेशन क्लाइंट को 'हैलो' वर्ल्ड 'प्रतिक्रिया भेजेगा।

एक्सप्रेस को स्थापित करना और उपयोग करना

var express=require('express');
var app=express();
app.get('/',function(req,res)
{
res.send('Hello World!');
});
var server=app.listen(3000,function() {});

कोड स्पष्टीकरण:

  1. हमारे कोड की पहली पंक्ति में, हम "एक्सप्रेस मॉड्यूल" को शामिल करने के लिए require फ़ंक्शन का उपयोग कर रहे हैं।
  2. इससे पहले कि हम एक्सप्रेस मॉड्यूल का उपयोग शुरू कर सकें, हमें इसका एक ऑब्जेक्ट बनाना होगा।
  3. यहाँ हम एक कॉलबैक फ़ंक्शन बना रहे हैं। जब भी कोई हमारे वेब एप्लिकेशन के रूट पर ब्राउज़ करेगा, तो यह फ़ंक्शन कॉल किया जाएगा। http://localhost:3000 कॉलबैक फ़ंक्शन का उपयोग वेब पेज पर 'हैलो वर्ल्ड' स्ट्रिंग भेजने के लिए किया जाएगा।
  4. कॉलबैक फ़ंक्शन में, हम क्लाइंट को "हैलो वर्ल्ड" स्ट्रिंग वापस भेज रहे हैं। 'res' पैरामीटर का उपयोग वेब पेज पर सामग्री वापस भेजने के लिए किया जाता है। यह 'res' पैरामीटर कुछ ऐसा है जो 'request' मॉड्यूल द्वारा प्रदान किया जाता है ताकि कोई व्यक्ति वेब पेज पर सामग्री वापस भेज सके।
  5. फिर हम अपने सर्वर एप्लिकेशन को पोर्ट नंबर 3000 पर क्लाइंट अनुरोधों को सुनने के लिए listen to फ़ंक्शन का उपयोग कर रहे हैं। आप यहां कोई भी उपलब्ध पोर्ट निर्दिष्ट कर सकते हैं।

यदि कमांड सफलतापूर्वक निष्पादित हो जाता है, तो जब आप ब्राउज़र में अपना कोड चलाएंगे तो निम्नलिखित आउटपुट दिखाया जाएगा।

आउटपुट:

एक्सप्रेस .js

आउटपुट से,

  • आप स्पष्ट रूप से देख सकते हैं कि यदि हम पोर्ट 3000 पर लोकलहोस्ट के URL को ब्राउज़ करते हैं, तो आपको पृष्ठ पर 'हैलो वर्ल्ड' स्ट्रिंग प्रदर्शित होगी।
  • क्योंकि हमारे कोड में हमने विशेष रूप से सर्वर को पोर्ट संख्या 3000 पर सुनने के लिए उल्लेख किया है, हम इस यूआरएल पर ब्राउज़ करते समय आउटपुट देखने में सक्षम हैं।

मार्ग क्या हैं?

रूटिंग वह तरीका निर्धारित करती है जिससे कोई एप्लिकेशन किसी विशेष समापन बिंदु पर क्लाइंट अनुरोध का जवाब देती है।

उदाहरण के लिए, एक क्लाइंट विभिन्न URL के लिए GET, POST, PUT या DELETE http अनुरोध कर सकता है जैसे कि नीचे दिखाए गए हैं;

http://localhost:3000/Books
http://localhost:3000/Students

उपरोक्त उदाहरण में,

  • यदि पहले URL के लिए GET अनुरोध किया जाता है, तो प्रतिक्रिया आदर्श रूप से पुस्तकों की सूची होनी चाहिए।
  • यदि GET अनुरोध दूसरे URL के लिए किया जाता है, तो प्रतिक्रिया आदर्श रूप से छात्रों की सूची होनी चाहिए।
  • इसलिए जिस URL को एक्सेस किया जाता है, उसके आधार पर वेबसर्वर पर एक अलग कार्यक्षमता लागू की जाएगी, और उसके अनुसार, क्लाइंट को प्रतिक्रिया भेजी जाएगी। यह रूटिंग की अवधारणा है।

प्रत्येक रूट में एक या अधिक हैंडलर फ़ंक्शन हो सकते हैं, जो रूट के मेल खाने पर निष्पादित होते हैं।

रूट के लिए सामान्य सिंटैक्स नीचे दिखाया गया है

app.METHOD(PATH, HANDLER)

जिसमें,

1) ऐप एक्सप्रेस मॉड्यूल का एक उदाहरण है

2) METHOD एक HTTP अनुरोध विधि है (GET, POST, PUT या DELETE)

3) PATH सर्वर पर एक पथ है.

4) HANDLER वह फ़ंक्शन है जो रूट के मिलान होने पर निष्पादित होता है।

आइए एक उदाहरण देखें कि हम एक्सप्रेस में रूट कैसे लागू कर सकते हैं। हमारा उदाहरण 3 रूट बनाएगा

  1. एक /Node रूट जो इस रूट तक पहुँचने पर “Tutorial on Node” स्ट्रिंग प्रदर्शित करेगा
  2. एक /Angular रूट जो इस रूट तक पहुँचने पर “Angular पर ट्यूटोरियल” स्ट्रिंग प्रदर्शित करेगा
  3. एक डिफ़ॉल्ट रूट / जो "गुरु99 ट्यूटोरियल्स में आपका स्वागत है" स्ट्रिंग प्रदर्शित करेगा।

हमारा मूल कोड पिछले उदाहरणों जैसा ही रहेगा। नीचे दिया गया स्निपेट यह दिखाने के लिए एक ऐड-ऑन है कि रूटिंग कैसे लागू की जाती है।

Node.js में रूट

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');
}));

कोड स्पष्टीकरण:

  1. यहाँ हम एक रूट परिभाषित कर रहे हैं यदि URL http://localhost:3000/Node ब्राउज़र में चुना गया है। रूट में, हम एक कॉलबैक फ़ंक्शन संलग्न कर रहे हैं जिसे तब कॉल किया जाएगा जब हम नोड URL पर ब्राउज़ करेंगे। फ़ंक्शन में 2 पैरामीटर हैं।
  • मुख्य पैरामीटर जिसका हम उपयोग करेंगे वह 'res' पैरामीटर है, जिसका उपयोग क्लाइंट को सूचना भेजने के लिए किया जा सकता है।
  • 'req' पैरामीटर में किए जा रहे अनुरोध के बारे में जानकारी होती है। कभी-कभी किए जा रहे अनुरोध के हिस्से के रूप में अतिरिक्त पैरामीटर भेजे जा सकते हैं, और इसलिए भेजे जा रहे अतिरिक्त पैरामीटर को खोजने के लिए 'req' पैरामीटर का उपयोग किया जा सकता है।
  1. यदि नोड रूट चुना जाता है तो हम "नोड पर ट्यूटोरियल" स्ट्रिंग को क्लाइंट को वापस भेजने के लिए सेंड फ़ंक्शन का उपयोग कर रहे हैं।
  2. यहाँ हम एक रूट परिभाषित कर रहे हैं यदि URL http://localhost:3000/Angular ब्राउज़र में चुना गया है। रूट में, हम एक कॉलबैक फ़ंक्शन संलग्न कर रहे हैं जिसे तब कॉल किया जाएगा जब हम Angular URL पर ब्राउज़ करेंगे।
  3. यदि Angular रूट चुना जाता है तो हम क्लाइंट को “Tutorial on Angular” स्ट्रिंग वापस भेजने के लिए send फ़ंक्शन का उपयोग कर रहे हैं।
  4. यह डिफ़ॉल्ट रूट है जिसे एप्लिकेशन के रूट पर ब्राउज़ करते समय चुना जाता है - http://localhost:3000जब डिफ़ॉल्ट रूट चुना जाता है, तो क्लाइंट को "गुरु99 ट्यूटोरियल्स में आपका स्वागत है" संदेश भेजा जाएगा।

यदि कमांड सफलतापूर्वक निष्पादित हो जाता है, तो जब आप ब्राउज़र में अपना कोड चलाएंगे तो निम्नलिखित आउटपुट दिखाया जाएगा।

आउटपुट:

Node.js में रूट

आउटपुट से,

  • आप स्पष्ट रूप से देख सकते हैं कि यदि हम पोर्ट 3000 पर लोकलहोस्ट के यूआरएल को ब्राउज़ करते हैं, तो आपको पृष्ठ पर 'वेलकम टू गुरु99 ट्यूटोरियल्स' स्ट्रिंग दिखाई देगी।
  • क्योंकि हमने अपने कोड में उल्लेख किया है कि हमारा डिफ़ॉल्ट URL यह संदेश प्रदर्शित करेगा।

Node.js में रूट

आउटपुट से,

  • आप देख सकते हैं कि यदि URL को /Node में बदल दिया गया है, तो संबंधित नोड रूट चुना जाएगा और "ट्यूटोरियल ऑन नोड" स्ट्रिंग प्रदर्शित होगी।

Node.js में रूट

आउटपुट से,

  • आप देख सकते हैं कि यदि URL को /Angular में बदल दिया गया है, तो संबंधित नोड रूट चुना जाएगा और “Tutorial On Angular” स्ट्रिंग प्रदर्शित होगी।

एक्सप्रेस.js का उपयोग करते हुए नमूना वेब सर्वर

हमारे ऊपर दिए गए उदाहरण से, हमने देखा है कि हम रूटिंग के आधार पर किस आउटपुट को दिखाना है, यह कैसे तय कर सकते हैं। इस तरह की रूटिंग का इस्तेमाल ज़्यादातर आधुनिक वेब एप्लीकेशन में किया जाता है। वेब सर्वर का दूसरा हिस्सा Node js में टेम्प्लेट का इस्तेमाल करने के बारे में है।

त्वरित ऑन-द-फ्लाई नोड एप्लिकेशन बनाते समय, एप्लिकेशन के लिए टेम्प्लेट का उपयोग करना एक आसान और तेज़ तरीका है। टेम्प्लेट बनाने के लिए बाज़ार में कई फ्रेमवर्क उपलब्ध हैं। हमारे मामले में, हम टेम्प्लेटिंग के लिए जेड फ्रेमवर्क का उदाहरण लेंगे।

जेड को नोड पैकेज मैनेजर के माध्यम से इंस्टॉल किया जाता है। यह कमांड लाइन में निम्न पंक्ति को निष्पादित करके किया जा सकता है

एनपीएम जेड स्थापित करें

उपरोक्त आदेश नोड पैकेज प्रबंधक को आवश्यक जेड मॉड्यूल डाउनलोड करने और उन्हें तदनुसार स्थापित करने का अनुरोध करता है।

नोट: नोड के नवीनतम संस्करण में जेड को हटा दिया गया है। इसके बजाय, पग का उपयोग करें।

आइए अपने नए स्थापित जेड फ्रेमवर्क का उपयोग करें और कुछ बुनियादी टेम्पलेट्स बनाएं।

चरण 1) पहला कदम जेड टेम्पलेट बनाना है। index.jade नामक फ़ाइल बनाएँ और नीचे दिया गया कोड डालें। फ़ाइल को “views” फ़ोल्डर में बनाना सुनिश्चित करें

Express.js का उपयोग करते हुए नमूना वेब सर्वर

  1. यहां हम यह निर्दिष्ट कर रहे हैं कि इस टेम्पलेट के लागू होने पर पृष्ठ का शीर्षक उस मान में परिवर्तित हो जाएगा जो भी पास किया जाएगा।
  2. हम यह भी निर्दिष्ट कर रहे हैं कि हेडर टैग में जो भी पाठ होगा, उसे जेड टेम्पलेट में जो भी पास किया जाएगा, उससे प्रतिस्थापित कर दिया जाएगा।

Express.js का उपयोग करते हुए नमूना वेब सर्वर

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() {});

कोड स्पष्टीकरण:

  1. एप्लिकेशन में निर्दिष्ट करने वाली पहली चीज़ "व्यू इंजन" है जिसका उपयोग टेम्प्लेट को रेंडर करने के लिए किया जाएगा। चूँकि हम अपने टेम्प्लेट को रेंडर करने के लिए जेड का उपयोग करने जा रहे हैं, इसलिए हम इसे तदनुसार निर्दिष्ट करते हैं।
  2. रेंडर फ़ंक्शन का उपयोग वेब पेज को रेंडर करने के लिए किया जाता है। हमारे उदाहरण में, हम टेम्पलेट (index.jade) को रेंडर कर रहे हैं जो पहले बनाया गया था।
  3. हम “Guru99” और “Welcome” के मानों को क्रमशः “title” और “message” पैरामीटर में पास कर रहे हैं। इन मानों को index.jade टेम्पलेट में घोषित ‘title’ और ‘message’ पैरामीटर द्वारा प्रतिस्थापित किया जाएगा।

यदि कमांड सफलतापूर्वक निष्पादित हो जाता है, तो जब आप ब्राउज़र में अपना कोड चलाएंगे तो निम्नलिखित आउटपुट दिखाया जाएगा।

आउटपुट:

Express.js का उपयोग करते हुए नमूना वेब सर्वर

आउटपुट से,

  • हम देख सकते हैं कि पेज का शीर्षक “Guru99” पर सेट हो गया है और पेज का हेडर “स्वागत” पर सेट हो गया है।
  • ऐसा जेड टेम्पलेट के कारण होता है जो हमारे नोड जेएस एप्लीकेशन में लागू होता है।

सारांश

  • एक्सप्रेस फ्रेमवर्क Node js एप्लीकेशन को विकसित करने के लिए इस्तेमाल किया जाने वाला सबसे आम फ्रेमवर्क है। एक्सप्रेस फ्रेमवर्क node.js फ्रेमवर्क के ऊपर बनाया गया है और सर्वर-आधारित एप्लीकेशन के विकास को तेजी से आगे बढ़ाने में मदद करता है।
  • रूट का उपयोग उपयोगकर्ताओं को उनके अनुरोध के आधार पर वेब एप्लिकेशन के विभिन्न भागों में भेजने के लिए किया जाता है। प्रत्येक रूट के लिए प्रतिक्रिया इस बात पर निर्भर करती है कि उपयोगकर्ता को क्या दिखाया जाना चाहिए।
  • टेम्पलेट्स का उपयोग कुशल तरीके से सामग्री को इंजेक्ट करने के लिए किया जा सकता है। जेड नोड.जेएस अनुप्रयोगों में उपयोग किए जाने वाले सबसे लोकप्रिय टेम्पलेटिंग इंजनों में से एक है।