टेम्पलेट इंजन
Node.js में टेम्पलेट इंजन एक ऐसा उपकरण है जो डाइनामिक HTML पेज बनाने की सुविधा देता है। यह डेटा और प्रेजेंटेशन को अलग रखता है, जिससे कोड की पठनीयता, मेंटेनबिलिटी और स्केलेबिलिटी बेहतर होती है। टेम्पलेट इंजन के माध्यम से सर्वर-साइड डेटा को HTML में सम्मिलित किया जा सकता है, साथ ही लूप, कंडीशनल स्टेटमेंट और हेल्पर फंक्शन का उपयोग करके पेज को डाइनामिक बनाया जा सकता है।
Node.js में सामान्य टेम्पलेट इंजन EJS, Pug और Handlebars हैं। इनका उपयोग तब किया जाता है जब आपको एप्लिकेशन लॉजिक और UI को अलग रखना हो, जैसे कि डेटाबेस से डेटा प्राप्त करना और उसे HTML में रेंडर करना। यह डेवलपर्स को डेटा स्ट्रक्चर, एल्गोरिदम और OOP प्रिंसिपल का सही उपयोग करने में मदद करता है।
इस ट्यूटोरियल में, आप सीखेंगे कि Node.js में टेम्पलेट इंजन कैसे सेटअप और इम्प्लीमेंट किया जाता है। इसमें शामिल हैं: डेटा स्ट्रक्चर और ऑब्जेक्ट्स का उपयोग, बिजनेस लॉजिक को टेम्पलेट से अलग रखना, बेहतर एरर हैंडलिंग, और मेमोरी लीक से बचने के उपाय। इसके अलावा, यह समझाया जाएगा कि टेम्पलेट इंजन का सही उपयोग कैसे सिस्टम आर्किटेक्चर और एप्लिकेशन की परफॉर्मेंस को बेहतर बनाता है।
मूल उदाहरण
textconst express = require('express');
const path = require('path');
const app = express();
const PORT = 3000;
// EJS टेम्पलेट इंजन सेटअप
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
// उदाहरण डेटा
const users = [
{ name: 'Ravi', age: 25 },
{ name: 'Sita', age: 30 },
{ name: 'Amit', age: 20 }
];
// रूट हैंडलर
app.get('/', (req, res) => {
res.render('index', { users });
});
// सर्वर स्टार्ट
app.listen(PORT, () => {
console.log(`Server running at http://localhost:${PORT}`);
});
इस उदाहरण में Express ऐप में EJS टेम्पलेट इंजन इंटीग्रेट किया गया है। मुख्य बिंदु:
- app.set('view engine', 'ejs') EJS को टेम्पलेट इंजन के रूप में सेट करता है।
- app.set('views', path.join(__dirname, 'views')) टेम्पलेट फ़ाइलों के लिए डिरेक्टरी सेट करता है।
- users एरे डेटा स्ट्रक्चर का उपयोग दिखाता है, जिसे टेम्पलेट में लूप या कंडीशन्स के लिए पास किया जा सकता है।
- res.render('index', { users }) डेटा को टेम्पलेट में पास कर डाइनामिक HTML रेंडरिंग करता है।
यह कोड लॉजिक और प्रेजेंटेशन को अलग करता है, मेमोरी लीक से बचता है और Node.js की बेहतरीन प्रैक्टिस का पालन करता है।
व्यावहारिक उदाहरण
textconst express = require('express');
const path = require('path');
class User {
constructor(name, age) {
this.name = name;
this.age = age;
}
isAdult() {
return this.age >= 18;
}
}
const app = express();
const PORT = 3000;
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
const users = [
new User('Ravi', 25),
new User('Sita', 30),
new User('Amit', 16)
];
app.get('/', (req, res) => {
try {
res.render('index', { users });
} catch (error) {
console.error('Template rendering error:', error);
res.status(500).send('Internal Server Error');
}
});
app.listen(PORT, () => {
console.log(`Server running at http://localhost:${PORT}`);
});
इस व्यावहारिक उदाहरण में OOP का उपयोग करके User क्लास बनाई गई है। isAdult मेथड बिजनेस लॉजिक को टेम्पलेट से अलग करता है।
- try/catch ब्लॉक एरर हैंडलिंग के लिए है।
- ऑब्जेक्ट्स को टेम्पलेट में पास करना OOP प्रिंसिपल और पुन: प्रयोज्य कोड को दर्शाता है।
- यह मेमोरी लीक, अनइफिशिएंट लूप्स और लॉजिक-प्रेजेंटेशन मिश्रण से बचाता है।
📊 संदर्भ तालिका
Node.js Element/Concept | Description | Usage Example |
---|---|---|
Template Engine EJS | डाइनामिक HTML रेंडरिंग | app.set('view engine', 'ejs') |
डेटा पास करना | सर्वर डेटा टेम्पलेट में भेजना | res.render('index', { users }) |
OOP कैप्सुलेशन | डेटा और लॉजिक क्लास में ऑर्गेनाइज करना | class User { isAdult() {...} } |
एरर हैंडलिंग | Template rendering errors handle करना | try { res.render(...) } catch(err) {...} |
Separation of Concerns | लॉजिक और टेम्पलेट अलग रखना | Controller handles logic, Template renders |
सारांश और अगले कदम:
Node.js में टेम्पलेट इंजन के माध्यम से आप डाइनामिक HTML रेंडरिंग, OOP प्रिंसिपल, और डेटा स्ट्रक्चर प्रबंधन को समझते हैं। यह एप्लिकेशन की मेन्टेनबिलिटी, परफॉर्मेंस और सुरक्षा बढ़ाता है।
अगले कदम में Pug या Handlebars जैसी उन्नत टेम्पलेट इंजन का उपयोग, डेटाबेस इंटीग्रेशन, और कैशिंग/स्ट्रीमिंग तकनीकों की जांच करना चाहिए। इन कॉन्सेप्ट्स को व्यावहारिक प्रोजेक्ट्स में लागू करना सीखें। आधिकारिक डॉक्यूमेंटेशन, GitHub उदाहरण और Node.js कम्युनिटी ट्यूटोरियल्स मददगार संसाधन हैं।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी