Require और Export
Node.js में Require और Export मॉड्यूल सिस्टम का मूल आधार हैं, जो कोड को छोटे, पुन: प्रयोज्य और सुव्यवस्थित यूनिट्स में विभाजित करने की अनुमति देता है। Require का उपयोग किसी मॉड्यूल को आयात करने के लिए किया जाता है, चाहे वह Node.js का अंतर्निहित मॉड्यूल हो, npm से तृतीय-पक्ष मॉड्यूल हो या स्वयं निर्मित लोकल मॉड्यूल। Export के माध्यम से हम फ़ंक्शन, ऑब्जेक्ट या क्लास को साझा करते हैं ताकि अन्य फ़ाइलें उन्हें उपयोग कर सकें। Require और Export की समझ Node.js एप्लिकेशन को स्केलेबल, टेस्टेबल और मेंटेन करने योग्य बनाने के लिए आवश्यक है।
Require और Export केवल सिंटैक्स नहीं हैं; ये डेटा स्ट्रक्चर, एल्गोरिदम और ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) सिद्धांतों के साथ सीधे इंटरैक्ट करते हैं। उदाहरण के लिए, एक मॉड्यूल एक ऑब्जेक्ट के रूप में कई फ़ंक्शन या पूरी क्लास एक्सपोर्ट कर सकता है, जिसे अन्य फ़ाइलें उपयोग कर सकती हैं। यह अलगाव और रिस्पॉन्सिबिलिटी की स्पष्टता सुनिश्चित करता है। इस ट्यूटोरियल में, पाठक सीखेंगे कि Node.js प्रोजेक्ट्स को कैसे स्ट्रक्चर किया जाए, निर्भरताओं का सही प्रबंधन कैसे करें और मॉड्यूलर आर्किटेक्चर के भीतर OOP और एल्गोरिदम कैसे लागू करें। साथ ही, बेस्ट प्रैक्टिस जैसे मेमोरी लीक से बचाव, सही एरर हैंडलिंग और प्रदर्शन अनुकूलन को समझाया जाएगा।
मूल उदाहरण
text// mathOperations.js
function add(a, b) {
return a + b;
}
function multiply(a, b) {
return a * b;
}
// फ़ंक्शन एक्सपोर्ट करना
module.exports = { add, multiply };
// app.js
const mathOps = require('./mathOperations');
const sum = mathOps.add(5, 10);
const product = mathOps.multiply(5, 10);
console.log(`योग: ${sum}`);
console.log(`गुणन: ${product}`);
इस मूल उदाहरण में, mathOperations.js में दो फ़ंक्शन, add और multiply, module.exports के माध्यम से एक्सपोर्ट किए गए हैं। app.js में require का उपयोग करके यह मॉड्यूल आयात किया गया है और इसके फ़ंक्शन उपयोग किए गए हैं। यह मॉड्यूलर डेवलपमेंट के मूल सिद्धांत को दिखाता है: कार्यक्षमता को अलग मॉड्यूल में कैप्सूल करना और केवल आवश्यक चीज़ें एक्सपोर्ट करना। इससे ग्लोबल namespace प्रदूषण से बचा जाता है और कोड की maintainability बढ़ती है।
यह उदाहरण बेस्ट प्रैक्टिस को भी दर्शाता है: स्पष्ट नामकरण, redundant imports से बचाव और single responsibility per module। शुरुआती डेवलपर्स को यह समझना चाहिए कि module.exports हमेशा एक ऑब्जेक्ट होता है, जिसमें फ़ंक्शन, क्लास या अन्य डेटा टाइप की properties हो सकती हैं। इस कॉन्सेप्ट की समझ Node.js एप्लिकेशन को modular, testable और scalable बनाने के लिए महत्वपूर्ण है।
व्यावहारिक उदाहरण
text// user.js
class User {
constructor(name, email) {
this.name = name;
this.email = email;
}
displayInfo() {
return `नाम: ${this.name}, ईमेल: ${this.email}`;
}
}
function validateEmail(email) {
const regex = /^[^\s@]+@[^\s@]+.[^\s@]+$/;
return regex.test(email);
}
module.exports = { User, validateEmail };
// main.js
const { User, validateEmail } = require('./user');
const user1 = new User('Alice', '[[email protected]](mailto:[email protected])');
console.log(user1.displayInfo());
const isValid = validateEmail('[[email protected]](mailto:[email protected])');
console.log(`ईमेल वैध है? ${isValid}`);
इस व्यावहारिक उदाहरण में, user.js क्लास User और फ़ंक्शन validateEmail दोनों को एक्सपोर्ट करता है। main.js में Destructuring का उपयोग करके इन्हें आयात किया गया है, जिससे केवल आवश्यक मॉड्यूल्स को चुना जा सकता है। User क्लास OOP सिद्धांतों को लागू करती है, डेटा और methods को encapsulate करती है, जबकि validateEmail एक regex एल्गोरिदम के माध्यम से इनपुट वैलिडेशन करता है।
यह पैटर्न उच्च cohesion और low coupling को बढ़ावा देता है, जो maintainable और performant Node.js प्रोजेक्ट्स के लिए आवश्यक है। require के try/catch blocks के माध्यम से एरर हैंडलिंग को जोड़ा जा सकता है। Node.js का module caching सिस्टम मॉड्यूल्स को केवल एक बार लोड करता है, जिससे प्रदर्शन में सुधार होता है। यह approach वास्तविक-world applications में business logic, algorithms और data structures को modular तरीके से लागू करने में मदद करती है।
📊 संदर्भ तालिका
Node.js Element/Concept | Description | Usage Example |
---|---|---|
module.exports | फ़ंक्शन, क्लास या ऑब्जेक्ट को फ़ाइल से एक्सपोर्ट करना | module.exports = { add, multiply } |
require | मॉड्यूल को फ़ाइल में आयात करना | const math = require('./mathOperations') |
Destructuring Require | मॉड्यूल के specific members को आयात करना | const { User, validateEmail } = require('./user') |
Class Export | क्लास को अन्य मॉड्यूल्स के लिए एक्सपोर्ट करना | module.exports = { User } |
Function Export | फ़ंक्शन को अन्य मॉड्यूल्स के लिए एक्सपोर्ट करना | module.exports = validateEmail |
Caching | Node.js मॉड्यूल्स को प्रदर्शन सुधारने के लिए cache करता है | const lib = require('./lib'); // module cached |
सारांश रूप में, Require और Export Node.js में modular development के लिए अनिवार्य हैं। ये कोड को structured, maintainable और performant बनाते हैं। इन कॉन्सेप्ट्स की महारत OOP, algorithms और modular project structure को लागू करने में सहायक है। अगले कदमों में ES Modules (import/export), advanced dependency management और Node.js design patterns सीखना शामिल है। डेवलपर्स को real-world projects में modularization अभ्यास करना चाहिए, module usage optimize करना चाहिए और Node.js की official documentation तथा advanced tutorials का अध्ययन करना चाहिए।
🧠 अपने ज्ञान की परीक्षा करें
अपने ज्ञान की परीक्षा करें
इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं
📝 निर्देश
- हर प्रश्न को ध्यान से पढ़ें
- हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
- आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
- आपकी प्रगति शीर्ष पर दिखाई जाएगी