Node.js का उपयोग करके 'मॉड्यूल नहीं खोजा जा सका' त्रुटि का समाधान कैसे करें?

Node Js Ka Upayoga Karake Modyula Nahim Khoja Ja Saka Truti Ka Samadhana Kaise Karem



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

त्वरित रूपरेखा

Node.js में मॉड्यूल क्या है?

Node.js में, ' मापांक ” एक लाइब्रेरी से मेल खाती है जो किसी एप्लिकेशन के साथ उसके संदर्भ के आधार पर संबंध बनाती है। यह डेवलपर्स को जरूरत पड़ने पर इनकैप्सुलेटेड कोड का पुन: उपयोग करने की अनुमति देता है। इसे तीन मुख्य श्रेणियों में वर्गीकृत किया गया है: 'अंतर्निहित', 'स्थानीय' और 'तृतीय-पक्ष' मॉड्यूल। इन मॉड्यूल में विधियों और गुणों की एक विस्तृत श्रृंखला शामिल है जो उनकी कार्यक्षमता के अनुसार निर्दिष्ट संचालन करते हैं।







Node.js का उपयोग करके 'मॉड्यूल नहीं खोजा जा सका' त्रुटि का समाधान कैसे करें?

यह अनुभाग उन सभी संभावित कारणों को सूचीबद्ध करता है जो 'मॉड्यूल नहीं ढूंढ सकते' त्रुटि उत्पन्न करते हैं और इसे हल करने के लिए व्यावहारिक समाधान भी प्रदान करते हैं:



कारण 1: आवश्यक मॉड्यूल स्थापित नहीं है

इसका सबसे आम कारण ' मॉड्यूल नहीं मिल सका 'त्रुटि यह है कि आवश्यक' तृतीय-पक्ष मॉड्यूल स्थापित नहीं है वर्तमान Node.js प्रोजेक्ट में। मान लीजिए, हम Node.js एप्लिकेशन में तृतीय-पक्ष 'mysql' मॉड्यूल को इस प्रकार आयात करते हैं:



कॉन्स्ट माई एसक्यूएल = ज़रूरत होना ( 'माई एसक्यूएल' ) ;

उपरोक्त आदेश में, ' ज़रूरत होना() 'विधि में वर्तमान नोड.जेएस एप्लिकेशन में 'mysql' मॉड्यूल शामिल है।





'.js' फ़ाइल निष्पादित करें:

नोड सूचकांक. जे एस

नीचे दिया गया आउटपुट चर्चा की गई त्रुटि उत्पन्न करता है क्योंकि 'mysql' मॉड्यूल वर्तमान Node.js प्रोजेक्ट में स्थापित नहीं है:



समाधान: आवश्यक मॉड्यूल स्थापित करें

ऊपर चर्चा की गई त्रुटि का समाधान 'की सहायता से आवश्यक मॉड्यूल को ठीक से स्थापित करना है' NPM / धागा ' पैकेज प्रबंधक। इस परिदृश्य के लिए, आवश्यक 'mysql' मॉड्यूल 'npm' इंस्टॉलेशन कमांड के साथ स्थापित किया गया है:

npm mysql इंस्टॉल करें

आउटपुट वर्तमान Node.js प्रोजेक्ट में 'mysql' मॉड्यूल की सफल स्थापना दिखाता है:

अब '.js' फ़ाइल को फिर से निष्पादित करें:

नोड सूचकांक. जे एस

इसका विश्लेषण किया जा सकता है कि उपरोक्त कमांड 'मॉड्यूल नहीं ढूंढ सका' त्रुटि उत्पन्न किए बिना सफलतापूर्वक निष्पादित हुआ:

कारण 2: गलत मॉड्यूल पथ

इसका एक अन्य कारण ' मॉड्यूल नहीं मिल सका 'त्रुटि है' ग़लत मॉड्यूल पथ ”। यह आमतौर पर तब होता है जब उपयोगकर्ता किसी स्थानीय मॉड्यूल को उसके सापेक्ष पथ के माध्यम से आयात करता है। मान लीजिए, उपयोगकर्ता विशिष्ट फ़ोल्डर में एक कस्टम मॉड्यूल बनाता है और इसे Node.js एप्लिकेशन में आयात करता है। ऐसा करने से पहले, सुनिश्चित करें कि निर्दिष्ट पथ सही है अन्यथा चर्चा की गई त्रुटि का सामना करना पड़ेगा।

उदाहरण के लिए, एक स्थानीय/उपयोगकर्ता-परिभाषित मॉड्यूल जिसका नाम ' मेरा मॉड्यूल ” “./कस्टम-मॉड्यूल” फ़ोल्डर में मौजूद है:

उपयोगकर्ता उपरोक्त हाइलाइट किए गए 'myModule' को उसके सापेक्ष पथ के माध्यम से वर्तमान Node.js एप्लिकेशन में आयात करता है:

कॉन्स्ट बोली = ज़रूरत होना ( './myModule' ) ;

'.js' फ़ाइल चलाएँ:

नोड सूचकांक. जे एस

यह देखा जा सकता है कि 'myModule' के गलत पथ के कारण 'मॉड्यूल नहीं खोजा जा सका' त्रुटि उत्पन्न होती है:

समाधान: सही मॉड्यूल पथ निर्दिष्ट करें

ऊपर चर्चा की गई त्रुटि का समाधान उस मॉड्यूल का सही या सटीक पथ निर्दिष्ट करना है जहां यह स्थित है। यहां, हमने 'मॉड्यूल नहीं ढूंढ सका' त्रुटि को हल करने के लिए 'myModule' का सही पथ पास किया:

कॉन्स्ट बोली = ज़रूरत होना ( './कस्टम-मॉड्यूल/मायमॉड्यूल' ) ;

'.js' फ़ाइल आरंभ करें:

नोड सूचकांक. जे एस

यह देखा जा सकता है कि नीचे दिया गया आउटपुट सामने आई त्रुटि नहीं दिखाता है क्योंकि आयातित मॉड्यूल का निर्दिष्ट पथ सही कर दिया गया है:

कारण 3: गलत मॉड्यूल नाम (केस संवेदनशील)

मॉड्यूल हैं ' अक्षर संवेदनशील लिनक्स और मैकओएस में, जैसे कि यदि मॉड्यूल नाम अपरकेस में स्थापित है और उपयोगकर्ता इसे लोअरकेस में आयात करता है तो ' मॉड्यूल नहीं मिल सका 'त्रुटि उत्पन्न होगी. ऐसा इसलिए है क्योंकि वास्तविक मॉड्यूल नाम और आयात विवरण के बीच एक बेमेल है।

यहां, स्थापित 'csvtojson' मॉड्यूल को 'अपरकेस' में Node.js एप्लिकेशन में आयात किया गया है:

कॉन्स्ट csvtojson = ज़रूरत होना ( 'CSVTOJSON' ) ;

'.js' फ़ाइल निष्पादित करें:

नोड सूचकांक. जे एस

गलत मॉड्यूल नाम के कारण आउटपुट 'मॉड्यूल नहीं ढूंढ सका' त्रुटि उत्पन्न करता है:

समाधान: सही मॉड्यूल नाम टाइप करें

उपरोक्त त्रुटि का समाधान 'का उपयोग करते समय आयातित मॉड्यूल के सही मामले (निचले या ऊपरी) को निर्दिष्ट करना है' ज़रूरत होना() ' तरीका। इस परिदृश्य में, 'csvtojson' मॉड्यूल को उसके सही मामले में 'आवश्यकता ()' विधि में निर्दिष्ट किया गया है:

कॉन्स्ट csvtojson = ज़रूरत होना ( 'csvtojson' ) ;

'.js' फ़ाइल फिर से चलाएँ:

नोड सूचकांक. जे एस

अब, उपरोक्त कमांड ने 'मॉड्यूल नहीं खोजा जा सका' त्रुटि उत्पन्न नहीं की क्योंकि आयातित पैकेज केस उसके वास्तविक नाम के समान है:

कारण 4: गलत फ़ाइल एक्सटेंशन

मॉड्यूल नहीं मिल सका 'त्रुटि' के कारण भी हो सकती है ग़लत फ़ाइल एक्सटेंशन ”। गलत फ़ाइल पथ के समान यह स्थानीय मॉड्यूल के मामले में होता है। उदाहरण के लिए, एक स्थानीय मॉड्यूल '.json' फ़ाइल में बनाया जाता है और Node.js एप्लिकेशन में '.js' एक्सटेंशन के साथ निर्दिष्ट किया जाता है, फिर उपरोक्त विशेष त्रुटि उत्पन्न होती है:

इस परिदृश्य में, ' myModule.js 'गलत मॉड्यूल पथ' में दिखाया गया कारण एक नमूना फ़ाइल के रूप में लिया गया है। इसे वर्तमान Node.js एप्लिकेशन में इसके एक्सटेंशन '.json' को इस प्रकार निर्दिष्ट करके एक्सेस किया जाता है:

कॉन्स्ट बोली = ज़रूरत होना ( './custom-modules/myModule.json' ) ;

'.js' फ़ाइल निष्पादित करें:

नोड सूचकांक. जे एस

आउटपुट 'myModule' फ़ाइल के गलत फ़ाइल एक्सटेंशन के कारण 'मॉड्यूल नहीं ढूंढ सका' त्रुटि उत्पन्न करता है:

समाधान: सही फ़ाइल एक्सटेंशन टाइप करें

चर्चा की गई त्रुटि का समाधान सही फ़ाइल एक्सटेंशन टाइप करना है जिसमें स्थानीय मॉड्यूल बनाया गया है। उदाहरण के लिए, हमने 'मॉड्यूल नहीं ढूंढ सका' त्रुटि को हल करने के लिए 'myModule.js' फ़ाइल का सही फ़ाइल एक्सटेंशन निर्दिष्ट किया है:

कॉन्स्ट बोली = ज़रूरत होना ( './custom-modules/myModule.js' ) ;

'.js' फ़ाइल चलाएँ:

नोड सूचकांक. जे एस

अब, उपरोक्त कमांड को 'मॉड्यूल नहीं खोजा जा सका' त्रुटि दिखाए बिना सफलतापूर्वक निष्पादित किया गया है:

कारण 5: मॉड्यूल की वैश्विक स्थापना

नोड मॉड्यूल स्थानीय रूप से (किसी विशिष्ट परियोजना के लिए) या विश्व स्तर पर (सभी परियोजनाओं के लिए) स्थापित किए जा सकते हैं। लिनक्स में , यदि आवश्यक मॉड्यूल किसी ऑपरेटिंग सिस्टम में विश्व स्तर पर स्थापित है और स्थानीय इंस्टॉलेशन के बिना किसी विशिष्ट प्रोजेक्ट में एक्सेस किया गया है तो ' मॉड्यूल नहीं मिल सका 'त्रुटि उत्पन्न होती है.

उदाहरण के लिए, ' mongodb मॉड्यूल विश्व स्तर पर लिनक्स ऑपरेटिंग सिस्टम में 'के माध्यम से स्थापित किया गया है' सुडो एनपीएम इंस्टाल -जी मोंगोडब 'कमांड और विशिष्ट नोड प्रोजेक्ट में स्थानीय रूप से एक्सेस किया जाता है:

कॉन्स्ट mongodb = ज़रूरत होना ( 'मोंगोडब' )

'.js' फ़ाइल चलाएँ:

नोड सूचकांक. जे एस

आउटपुट चर्चा की गई त्रुटि उत्पन्न करता है क्योंकि 'मोंगोडब' वर्तमान नोड प्रोजेक्ट में स्थानीय रूप से स्थापित नहीं है:

समाधान: मॉड्यूल को स्थानीय रूप से स्थापित करें

सामने आई त्रुटि का समाधान लिनक्स-आधारित ऑपरेटिंग सिस्टम पर एक विशिष्ट Node.js प्रोजेक्ट के लिए मॉड्यूल को स्थानीय रूप से स्थापित करना है।

यहां ही ' mongodb मॉड्यूल को 'एनपीएम' इंस्टॉलेशन कमांड की मदद से वर्तमान प्रोजेक्ट में स्थानीय रूप से स्थापित किया गया है:

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

जब 'मोंगोडब' की स्थानीय स्थापना पूरी हो जाए, तो इसे '.js' फ़ाइल में आयात करें और निष्पादित करें:

नोड सूचकांक. जे एस

यह देखा जा सकता है कि वर्तमान Node.js प्रोजेक्ट के लिए स्थानीय रूप से 'mongodb' मॉड्यूल स्थापित करके 'मॉड्यूल नहीं खोजा जा सका' त्रुटि का समाधान किया गया है:

विंडोज़ में, मॉड्यूल की वैश्विक और स्थानीय स्थापना 'मॉड्यूल नहीं ढूंढ सका' त्रुटि उत्पन्न नहीं करती है।

कारण 6: प्रविष्टि फ़ाइल का गुम होना

मॉड्यूल नहीं मिल सका मॉड्यूल के 'package.json' में मुख्य प्रविष्टि फ़ाइल गुम होने के कारण भी त्रुटि उत्पन्न हो सकती है। प्रत्येक मॉड्यूल की मुख्य प्रविष्टि फ़ाइल डिफ़ॉल्ट रूप से 'index.js' फ़ाइल है।

मान लीजिए, यदि उपयोगकर्ता इसे अनजाने में हटा देता है तो उपरोक्त त्रुटि उत्पन्न होगी। ऐसा इसलिए है क्योंकि निर्दिष्ट मॉड्यूल आयात करते समय ' ज़रूरत होना() विधि उस मॉड्यूल के फ़ोल्डर में नेविगेट करती है और प्रवेश बिंदु की तलाश करती है, यदि यह मौजूद नहीं है तो यह उस मॉड्यूल को Node.js एप्लिकेशन में आयात नहीं कर सकता है।

आवश्यक मॉड्यूल की प्रविष्टि फ़ाइल 'index.js' इसकी फ़ोल्डर संरचना के अंदर मौजूद है। नीचे दिया गया स्निपेट 'mysql' मॉड्यूल की प्रविष्टि फ़ाइल दिखाता है:

अब, ऊपर हाइलाइट की गई 'index.js' फ़ाइल को 'mysql' फ़ोल्डर से हटा दिया गया है और फिर 'mysql' मॉड्यूल को Node.js एप्लिकेशन में आयात किया गया है:

कॉन्स्ट माई एसक्यूएल = ज़रूरत होना ( 'माई एसक्यूएल' )

'.js' फ़ाइल निष्पादित करें:

नोड सूचकांक. जे एस

यहां, आउटपुट 'mysql' मॉड्यूल की प्रविष्टि फ़ाइल गुम होने के कारण 'मॉड्यूल नहीं ढूंढ सका' त्रुटि उत्पन्न करता है:

समाधान: आवश्यक मॉड्यूल दोबारा स्थापित करें

उपर्युक्त त्रुटि का समाधान 'हटाना' है नोड_मॉड्यूल ” निर्देशिका और आवश्यक मॉड्यूल को फिर से स्थापित करें। यहां, 'node_modules' निर्देशिका को हटाने के बाद 'mysql' मॉड्यूल फिर से स्थापित किया गया है:

npm mysql इंस्टॉल करें

'Mysql' की सफल स्थापना के बाद, नया ' नोड_मॉड्यूल 'निर्देशिका स्वचालित रूप से उत्पन्न होती है जिसमें 'mysql' मॉड्यूल की फ़ोल्डर संरचना होती है जिसमें 'index.js' मौजूद होता है:

अब, '.js' फ़ाइल को फिर से चलाएँ:

नोड सूचकांक. जे एस

यहां, आउटपुट 'mysql' मॉड्यूल के 'index.js' नामक प्रविष्टि फ़ाइल के अस्तित्व के कारण कोई 'मॉड्यूल नहीं ढूंढ सका' त्रुटि उत्पन्न नहीं करता है:

यदि 'मॉड्यूल नहीं ढूंढ सका' त्रुटि अभी भी बनी रहती है तो क्या करें?

यदि “ मॉड्यूल नहीं मिल सका उपरोक्त किसी भी समाधान के साथ इसे हल करने के बाद भी त्रुटि बनी रहती है तो इसे हटा दें नोड_मॉड्यूल 'फ़ोल्डर. तृतीय-पक्ष मॉड्यूल स्थापित होने पर 'नोड_मॉड्यूल' फ़ोल्डर स्वचालित रूप से उत्पन्न होता है। इसमें सभी तृतीय-पक्ष पैकेज शामिल हैं जिन पर Node.js प्रोजेक्ट निर्भर करता है।

इसके अलावा, ' पैकेज-लॉक.जेसन जब कोई पैकेज 'npm' के साथ स्थापित होता है तो फ़ाइल भी स्वचालित रूप से उत्पन्न होती है। यह उन निर्भरताओं के साथ-साथ उप-निर्भरताओं का भी रिकॉर्ड रखता है जिन पर पैकेज उनके संस्करणों के साथ निर्भर करता है। यदि पैकेज 'यार्न' के साथ स्थापित है तो इस फ़ाइल का नाम 'है' यार्न.ताला ”।

समाधान: 'नोड_मॉड्यूल' फ़ोल्डर और 'पैकेज-लॉक.जेसन' फ़ाइल को हटा दें

सामने आई त्रुटि का समाधान 'नोड_मॉड्यूल' फ़ोल्डर और 'पैकेज-लॉक.जेसन/यार्न.लॉक' फ़ाइल को हटाना और आवश्यक पैकेज को फिर से स्थापित करना है।

लिनक्स में , ऊपर-निर्दिष्ट फ़ोल्डर और फ़ाइलों को नीचे बताई गई मदद से हटाया जा सकता है ' आर एम (हटाएं)'' आदेश:

आर एम - आरएफ नोड_मॉड्यूल पैकेज - ताला। json //फ़ोल्डर और फ़ाइल हटाएँ

रास // फ़ाइल और निर्देशिकाएँ प्रदर्शित करें

उपरोक्त आदेश में ' -आर 'ध्वज निर्दिष्ट फ़ोल्डर को हटा देता है' रिकर्सिवली 'इसकी सभी उपनिर्देशिकाओं और' सहित एफ 'ध्वज दुभाषिया को यह कार्य करने के लिए कहता है' जोर जबरदसती ”:

आउटपुट से पता चलता है कि 'नोड_मॉड्यूल' फ़ोल्डर और 'पैकेज-लॉक.जेसन/यार्न.लॉक' फ़ाइल को वर्तमान नोड.जेएस प्रोजेक्ट से पूरी तरह से हटा दिया गया है:

विंडोज़ में उपयोगकर्ता केवल 'नोड_मॉड्यूल' फ़ोल्डर और 'पैकेज-लॉक.जेसन/यार्न.लॉक' फ़ाइल को 'दबाकर' हटा सकता है। मिटाना ” कुंजी या ड्रॉप-डाउन मेनू से “डिलीट” विकल्प का उपयोग करें।

यह सब Node.js में 'मॉड्यूल नहीं ढूंढ सका' त्रुटि को हल करने के बारे में है।

निष्कर्ष

को हल करने के लिए ' मॉड्यूल नहीं मिल सका त्रुटि, 'आवश्यक मॉड्यूल स्थापित करें', 'उसका सही पथ निर्दिष्ट करें', 'आवश्यकता()' विधि में सही केस टाइप करें, और 'सही फ़ाइल एक्सटेंशन टाइप करें'। इसके अलावा, इसे Node.js प्रोजेक्ट में 'मॉड्यूल को स्थानीय रूप से स्थापित करने' के लिए भी हल किया जा सकता है। यदि विशेष त्रुटि बनी रहती है तो 'नोड_मॉड्यूल' फ़ोल्डर, 'पैकेज-लॉक.जेसन' फ़ाइल को हटा दें, और फिर 'एनपीएम/यार्न' के माध्यम से आवश्यक मॉड्यूल को फिर से स्थापित करें। इस पोस्ट में Node.js का उपयोग करके 'मॉड्यूल नहीं ढूंढा जा सका' त्रुटि को हल करने के लिए उनके समाधान के साथ-साथ सभी संभावित कारणों पर चर्चा की गई है।