Node.js Express.js फ्रेमवर्क ट्यूटोरियल

⚡ स्मार्ट सारांश

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

  • 🔘 MEAN स्टैक भूमिका: Express.js बैकएंड लेयर प्रदान करता है। MongoDBएंगुलरजेएस और नोड.जेएस।
  • स्थापना: npm install express नोड पैकेज मैनेजर से फ्रेमवर्क को डाउनलोड करता है।
  • रूटिंग: app.METHOD(PATH, HANDLER) प्रत्येक को मैप करता है URL और HTTP वर्ब को एक हैंडलर को सौंपना।
  • 🧪 टेम्पलेट: app.set('view engine') और res.render का उपयोग करके व्यू फ़ाइल में डेटा भेजा जाता है।
  • आधुनिक रूप: Express 5 प्रॉमिस-रिटर्निंग हैंडलर स्वीकार करता है और express.json() को बंडल करता है।
  • 📊 संस्करण नोट: जेड का नाम बदलकर पग कर दिया गया है, और नोड.जेएस 24 सक्रिय एलटीएस लाइन है।

Node.js Express.js फ्रेमवर्क ट्यूटोरियल

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

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

Express.js एक Node.js वेब एप्लिकेशन सर्वर फ्रेमवर्क है, जिसे विशेष रूप से सिंगल-पेज, मल्टी-पेज और हाइब्रिड वेब एप्लिकेशन बनाने के लिए डिज़ाइन किया गया है।

यह Node.js के लिए मानक सर्वर फ्रेमवर्क बन गया है। एक्सप्रेस, MEAN स्टैक नामक प्रणाली का बैकएंड हिस्सा है।

एक्सप्रेस कोर नोड.जेएस एचटीटीपी के ऊपर रूटिंग और मिडलवेयर की परतें जोड़ता है। नदियों और इवेंट एपीआई।

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

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

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

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

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

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

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

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

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

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

संस्करण नोट: npm अब Express 5.2 इंस्टॉल करता है; कई प्रोजेक्ट अभी भी Express 4 का उपयोग करते हैं। नीचे दिए गए उदाहरणों को दोनों ही तरीकों से चलाएँ। समर्थित Node.js रिलीज़.

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

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

पोर्ट 3000 पर चल रहे एनोटेटेड एक्सप्रेस हेलो वर्ल्ड सर्वर कोड

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

Code स्पष्टीकरण:

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

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

आउटपुट:

ब्राउज़र पोर्ट 3000 पर एक्सप्रेस सर्वर द्वारा लौटाए गए "हेलो वर्ल्ड" संदेश को प्रदर्शित कर रहा है।

आउटपुट से,

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

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

एकल मूल मार्ग केवल आरंभिक बिंदु होता है।

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

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

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

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

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

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

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

app.METHOD(PATH, HANDLER)

जिसमें,

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

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

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

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

कॉल निवेदन उद्देश्य
ऐप.गेट(पाथ, हैंडलर) GET पढ़ना
ऐप.पोस्ट(पाथ, हैंडलर) पोस्ट बनाएं
ऐप.पुट(पाथ, हैंडलर) डाल बदलें
ऐप.डिलीट(पाथ, हैंडलर) हटाएँ हटाना
ऐप.राउट(पाथ) जंजीर समूह संचालक
ऐप.उपयोग(हैंडलर) कोई माउंट मिडलवेयर

⚠️ एक्सप्रेस एक्सएनयूएमएक्स नोट: ये हस्ताक्षर अपरिवर्तित हैं, लेकिन app.del() app.delete() बन गया, res.sendfile() res.sendFile() बन गया, और वाइल्डकार्ड को अब /*splat जैसे नामों की आवश्यकता है।

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

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

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

एनोटेटेड एक्सप्रेस रूटिंग कोड जो नोड, एंगुलर और डिफ़ॉल्ट रूट को परिभाषित करता है

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

Code स्पष्टीकरण:

  1. यहां हम एक मार्ग परिभाषित कर रहे हैं यदि URL http://localhost:3000/Node is selected in the browser. To the route, we are attaching a callback function which will be called when we browse to the Node URLइस फंक्शन में 2 पैरामीटर हैं।
    • मुख्य पैरामीटर जिसका हम उपयोग करेंगे वह 'res' पैरामीटर है, जिसका उपयोग क्लाइंट को सूचना भेजने के लिए किया जा सकता है।
    • 'req' पैरामीटर में किए जा रहे अनुरोध के बारे में जानकारी होती है। कभी-कभी किए जा रहे अनुरोध के हिस्से के रूप में अतिरिक्त पैरामीटर भेजे जा सकते हैं, और इसलिए भेजे जा रहे अतिरिक्त पैरामीटर को खोजने के लिए 'req' पैरामीटर का उपयोग किया जा सकता है।
  2. यदि नोड रूट चुना जाता है तो हम "नोड पर ट्यूटोरियल" स्ट्रिंग को क्लाइंट को वापस भेजने के लिए सेंड फ़ंक्शन का उपयोग कर रहे हैं।
  3. यहां हम एक मार्ग परिभाषित कर रहे हैं यदि URL http://localhost:3000/Angular is selected in the browser. To the route, we are attaching a callback function which will be called when we browse to the Angular URL.
  4. यदि Angular रूट चुना जाता है तो हम क्लाइंट को “Tutorial on Angular” स्ट्रिंग वापस भेजने के लिए send फ़ंक्शन का उपयोग कर रहे हैं।
  5. यह डिफ़ॉल्ट रूट है जिसे एप्लिकेशन के रूट पर ब्राउज़ करते समय चुना जाता है — http://localhost:3000। डिफ़ॉल्ट रूट चुने जाने पर, "वेलकम टू" संदेश प्रदर्शित होता है। Guruग्राहक को "99 ट्यूटोरियल" भेजे जाएंगे।

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

आउटपुट:

ब्राउज़र में "वेलकम टू" प्रदर्शित हो रहा है Guruडिफ़ॉल्ट एक्सप्रेस रूट पर 99 ट्यूटोरियल

आउटपुट से,

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

इसके बाद, /Node पर जाएं।

ब्राउज़र नोड रूट द्वारा लौटाए गए नोड पर ट्यूटोरियल दिखा रहा है

आउटपुट से,

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

फिर /Angular पर जाएं।

ब्राउज़र एंगुलर रूट द्वारा लौटाए गए एंगुलर ट्यूटोरियल को दिखा रहा है।

आउटपुट से,

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

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

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

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

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

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

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

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

⚠️ आधुनिक समकक्ष: स्थापित बंदरindex.jade का नाम बदलकर index.pug कर दें और app.set('view engine','pug') सेट करें। jade पैकेज को कोई अपडेट नहीं मिलेगा; नीचे दिए गए चरण फिर भी चलेंगे।

चलिए, अपने नए इंस्टॉल किए गए जेड फ्रेमवर्क का उपयोग करके कुछ बुनियादी टेम्पलेट बनाते हैं।

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

index.jade टेम्पलेट मार्कअप जिसमें शीर्षक और हेडर प्लेसहोल्डर शामिल हैं

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

इसे प्रदर्शित करने वाला एप्लिकेशन कोड नीचे दिया गया है।

एनोटेटेड एक्सप्रेस कोड जो जेड व्यू इंजन और रेंडरिंग इंडेक्स को सेट करता है

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

Code स्पष्टीकरण:

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

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

आउटपुट:

शीर्षक सहित जेड टेम्पलेट को ब्राउज़र में प्रदर्शित किया जा रहा है। Guru99 और हेडर स्वागत है

आउटपुट से,

  • हम देख सकते हैं कि पृष्ठ का शीर्षक " पर सेट हो जाता हैGuru99” और पेज का हेडर “स्वागत है” पर सेट हो जाता है।
  • ऐसा इसलिए है क्योंकि हमारे Node.js एप्लिकेशन में Jade टेम्पलेट को कॉल किया जाता है।

अक्सर पूछे जाने वाले प्रश्न

middleware फ़ंक्शन req, res और next प्राप्त करते हैं, फिर पंजीकरण क्रम में चलते हैं। वे लॉगिंग, बॉडी पार्सिंग, प्रमाणीकरण और त्रुटियों को संभालते हैं, और प्रत्येक को प्रतिक्रिया समाप्त करनी होती है या next() को कॉल करना होता है।

नहीं। एक्सप्रेस पार्सर को एक साथ बंडल करता है, इसलिए express.json() और express.urlencoded() अलग-अलग पार्सर की जगह लेते हैं। शरीर-पार्सर निर्भरता। संयुक्त bodyParser() हेल्पर को हटा दिया गया है, और req.body तब तक अपरिभाषित रहता है जब तक कोई पार्सर नहीं चलता।

एक्सप्रेस एक्सएनयूएमएक्स हैंडलर्स को प्रॉमिस-अवेयर बनाया, app.del() और res.sendfile() को हटा दिया, पाथ मैचिंग को अपग्रेड किया ताकि वाइल्डकार्ड को /*splat जैसे नामों की आवश्यकता हो, और urlencoded एक्सटेंडेड को डिफ़ॉल्ट रूप से false पर सेट किया।

Express 5 में, अस्वीकृत प्रॉमिस स्वचालित रूप से त्रुटि-हैंडलिंग मिडलवेयर को पास हो जाता है, इसलिए मैन्युअल next(err) कॉल की आवश्यकता नहीं रहती। Express 4 में प्रत्येक async फ़ंक्शन के अंदर स्पष्ट try/catch लूप की आवश्यकता होती है। वापस कॉल करें.

बंदरट्रेडमार्क कारणों से जेड का नाम बदल दिया गया है और जेड पैकेज अब उपयोग में नहीं है। मौजूदा टेम्प्लेट को .pug में नाम बदलकर और व्यू इंजन बदलकर काम करना जारी रखें।

Node.js 24, 2026 के दौरान सक्रिय LTS संस्करण रहेगा जबकि Node.js 22 रखरखाव में रहेगा, इसलिए स्थापित उनमें से एक। एक्सप्रेस 5 के लिए Node.js 18 या उससे नया संस्करण आवश्यक है।

मशीन लर्निंग स्कैनर रूट परिभाषाओं और मिडलवेयर क्रम को पढ़ते हैं, फिर प्रमाणीकरण की कमी या अमान्यता को चिह्नित करते हैं। Javaलिपि इनपुट और अनुमेय CORS नियम। प्रत्येक निष्कर्ष की पुष्टि एक मानव समीक्षक द्वारा की जाती है।

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

इस पोस्ट को संक्षेप में इस प्रकार लिखें: