כיצד לפתור שגיאת 'לא ניתן למצוא מודול' באמצעות Node.js?

Kyzd Lptwr Sgy T L Nytn Lmzw Mwdwl B Mz Wt Node Js



כמו שפות תכנות אחרות, Node.js אינו צריך לשבור את קוד המקור של האפליקציה לחתיכות קטנות. הוא כותב את כל קוד המקור לקובץ '.js' והמתורגמן אינו גורם לבעיות. עם זאת, בזמן יצירת יישום Node.js מורכב מאוד מומלץ לחלק את קוד המקור למודולים קטנים יותר ולאחר מכן לשלב אותם לאפליקציה מגובשת.

מתאר מהיר

מהו מודול ב-Node.js?

ב-Node.js, ה-' מודול ” מתאים לספרייה שבונה קשר עם אפליקציה בהתבסס על ההקשר שלה. זה מאפשר למפתחים לעשות שימוש חוזר בקוד המובלע בכל פעם שהוא נחוץ. הוא מסווג לשלוש קטגוריות עיקריות: מודולים 'מובנה', 'מקומי' ו'צד שלישי'. מודולים אלה מכילים בנוסף מגוון רחב של שיטות ומאפיינים המבצעים פעולות שצוינו בהתאם לפונקציונליות שלהם.







כיצד לפתור את השגיאה 'לא ניתן למצוא מודול' באמצעות Node.js?

סעיף זה מגייס את כל הסיבות האפשריות שיוצרות את השגיאה 'לא ניתן למצוא מודול' וכן מספק את הפתרונות המעשיים כדי לפתור אותה:



סיבה 1: מודול נדרש לא מותקן

הסיבה הנפוצה ביותר ל' לא ניתן למצוא מודול 'השגיאה היא שהדרוש' מודול צד שלישי אינו מותקן ' בפרויקט Node.js הנוכחי. נניח שאנו מייבאים את מודול 'mysql' של צד שלישי ביישום Node.js בדרך זו:



const mysql = לִדרוֹשׁ ( 'mysql' ) ;

בפקודה לעיל, ' לִדרוֹשׁ() השיטה כוללת את מודול 'mysql' ליישום node.js הנוכחי.





בצע את הקובץ '.js':

אינדקס צומת. js

הפלט שלהלן יוצר את השגיאה הנדונה מכיוון שמודול 'mysql' אינו מותקן בפרויקט ה-Node.js הנוכחי:



פתרון: התקן את המודול הנדרש

הפתרון לשגיאה שנדונה לעיל הוא להתקין את המודול הנדרש כראוי בעזרת ' npm / חוּט ' מנהל אריזה. עבור תרחיש זה, מודול 'mysql' הנדרש מותקן עם פקודת ההתקנה 'npm':

npm להתקין mysql

הפלט מציג את ההתקנה המוצלחת של מודול 'mysql' בפרויקט ה-Node.js הנוכחי:

כעת הפעל שוב את הקובץ '.js':

אינדקס צומת. js

ניתן לנתח שהפקודה לעיל בוצעה בהצלחה מבלי ליצור את השגיאה 'לא ניתן למצוא מודול':

סיבה 2: נתיב מודול שגוי

סיבה נוספת ל' לא ניתן למצוא מודול שגיאה היא ' נתיב מודול שגוי '. זה קורה בדרך כלל כאשר המשתמש מייבא מודול מקומי דרך הנתיב היחסי שלו. נניח שהמשתמש יוצר מודול מותאם אישית לתוך התיקיה הספציפית ומייבא אותו ליישום Node.js. לפני שתעשה זאת, ודא שהנתיב שצוין נכון, אחרת השגיאה הנדונה תתקל.

לדוגמה, מודול מקומי/מוגדר על ידי משתמש בשם ' myModule ' קיים בתיקייה './custom-modules':

המשתמש מייבא את 'myModule' המודגש לעיל ליישום Node.js הנוכחי דרך הנתיב היחסי שלו:

const שפות = לִדרוֹשׁ ( './myModule' ) ;

הפעל את הקובץ '.js':

אינדקס צומת. js

ניתן לראות שבגלל הנתיב השגוי של 'myModule' נוצרת השגיאה 'אי אפשר למצוא מודול':

פתרון: ציין את נתיב המודול הנכון

הפתרון לשגיאה שנדונה לעיל הוא לציין את הנתיב הנכון או המדויק של המודול שבו הוא נמצא. כאן העברנו את הנתיב הנכון 'myModule' כדי לפתור את השגיאה 'אי אפשר למצוא מודול':

const שפות = לִדרוֹשׁ ( './custom-modules/myModule' ) ;

הפעל את הקובץ '.js':

אינדקס צומת. js

ניתן לראות שהפלט שלהלן אינו מראה את השגיאה שנתקלה מכיוון שהנתיב שצוין של המודול המיובא תוקן:

סיבה 3: שם מודול שגוי (תלוי רישיות)

המודולים הם ' תלוי רישיות ' בלינוקס וב-macOS, למשל אם שם המודול מותקן באותיות רישיות והמשתמש מייבא אותו לאותיות קטנות ואז ' לא ניתן למצוא מודול תיווצר שגיאה. הסיבה לכך היא חוסר התאמה בין שם המודול בפועל להצהרת הייבוא.

כאן, מודול 'csvtojson' המותקן מיובא באותיות גדולות ליישום Node.js:

const csvtojson = לִדרוֹשׁ ( 'CSVTOJSON' ) ;

בצע את הקובץ '.js':

אינדקס צומת. js

הפלט יוצר את השגיאה 'לא ניתן למצוא מודול' עקב שם המודול השגוי:

פתרון: הקלד את שם המודול הנכון

הפתרון לשגיאה שלמעלה הוא לציין את האותיות הנכונות (תחתון או עליון) של המודול המיובא תוך שימוש ב' לִדרוֹשׁ() ' שיטה. בתרחיש זה, מודול 'csvtojson' מצוין בשיטת 'require()' במקרה הנכון שלו:

const csvtojson = לִדרוֹשׁ ( 'csvtojson' ) ;

הפעל את הקובץ '.js' שוב:

אינדקס צומת. js

כעת, הפקודה לעיל לא יצרה את השגיאה 'לא ניתן למצוא מודול' מכיוון שמארז החבילה המיובאת זהה לשם האמיתי שלה:

סיבה 4: סיומת קובץ שגויה

ה ' לא ניתן למצוא מודול שגיאה יכולה להתרחש גם עקב ' סיומת קובץ שגויה '. בדומה לנתיב הקובץ השגוי זה קורה במקרה של מודולים מקומיים. לדוגמה, מודול מקומי נוצר בקובץ '.json' והוא מצוין באפליקציית Node.js עם סיומת '.js', ואז נוצרת השגיאה הספציפית לעיל:

בתרחיש זה, ' myModule.js ' המוצג בסיבה 'נתיב מודול שגוי' נלקח כקובץ לדוגמה. ניתן לגשת אליו באפליקציית Node.js הנוכחית על ידי ציון הסיומת שלו '.json' כך:

const שפות = לִדרוֹשׁ ( './custom-modules/myModule.json' ) ;

בצע את הקובץ '.js':

אינדקס צומת. js

הפלט יוצר את השגיאה 'אי אפשר למצוא מודול' בגלל סיומת הקובץ השגויה של הקובץ 'myModule':

פתרון: הקלד סיומת קובץ נכונה

הפתרון לשגיאה הנדונה הוא להקליד את סיומת הקובץ הנכונה שבה נוצר המודול המקומי. לדוגמה, ציינו את סיומת הקובץ הנכונה של הקובץ 'myModule.js' כדי לפתור את השגיאה 'אי אפשר למצוא מודול':

const שפות = לִדרוֹשׁ ( './custom-modules/myModule.js' ) ;

הפעל את הקובץ '.js':

אינדקס צומת. js

כעת, הפקודה לעיל בוצעה בהצלחה מבלי להציג את השגיאה 'לא ניתן למצוא מודול':

סיבה 5: התקנה גלובלית של מודול

ניתן להתקין את מודולי הצומת באופן מקומי (עבור פרויקט ספציפי) או גלובלי (עבור כל הפרויקטים). בלינוקס , אם המודול הדרוש מותקן באופן גלובלי במערכת הפעלה והגישה אליו מתבצעת בפרויקט ספציפי ללא ההתקנה המקומית, ה-' לא ניתן למצוא מודול נוצרת שגיאה.

למשל, ה' מונגודב מודול מותקן ברחבי העולם במערכת ההפעלה לינוקס באמצעות ' sudo npm התקנת -g mongodb ' הפקודה וניתנת לגישה מקומית בפרויקט הצומת הספציפי:

const מונגודב = לִדרוֹשׁ ( 'מונגודב' )

הפעל את הקובץ '.js':

אינדקס צומת. js

הפלט יוצר את השגיאה הנדונה מכיוון ש-'mongodb' אינו מותקן באופן מקומי בפרויקט ה-Node הנוכחי:

פתרון: התקן את המודול באופן מקומי

הפתרון לשגיאה שנתקלתה הוא להתקין את המודול באופן מקומי עבור פרויקט Node.js ספציפי על מערכת הפעלה מבוססת לינוקס.

הנה ה ' מונגודב מודול מותקן באופן מקומי בפרויקט הנוכחי בעזרת פקודת ההתקנה 'npm':

npm להתקין mongodb

כאשר ההתקנה המקומית של 'mongodb' הושלמה, ייבא אותו לקובץ '.js' והפעל אותו:

אינדקס צומת. js

ניתן לראות ששגיאת 'אי אפשר למצוא מודול' נפתרה על ידי התקנת מודול 'mongodb' באופן מקומי עבור פרויקט Node.js הנוכחי:

ב-Windows, ההתקנה הגלובלית והמקומית של מודול אינה מייצרת את השגיאה 'לא ניתן למצוא מודול'.

סיבה 6: חסר קובץ כניסה

ה ' לא ניתן למצוא מודול שגיאה יכולה להיווצר גם בגלל שחסר את קובץ הכניסה הראשי ב-'package.json' של המודול. קובץ הכניסה הראשי של כל מודול הוא קובץ 'index.js' כברירת מחדל.

נניח שאם המשתמש מסיר אותו בלי כוונה, תיווצר השגיאה שנתקלה למעלה. הסיבה לכך היא שבזמן ייבוא ​​המודול שצוין, ' לִדרוֹשׁ() השיטה מנווטת לתיקיה של אותו מודול ומחפשת את נקודת הכניסה, אם היא לא קיימת היא לא יכולה לייבא את המודול הזה ליישום Node.js.

קובץ הכניסה 'index.js' של המודול הנדרש קיים במבנה התיקיות שלו. הקטע שלהלן מציג את קובץ הכניסה של מודול 'mysql':

כעת, קובץ ה-'index.js' המודגש לעיל מוסר מתיקיית 'mysql' ולאחר מכן מיובא את מודול 'mysql' ליישום Node.js:

const mysql = לִדרוֹשׁ ( 'mysql' )

בצע את הקובץ '.js':

אינדקס צומת. js

כאן, הפלט מייצר את השגיאה 'אי אפשר למצוא מודול' בגלל שחסר את קובץ הכניסה של מודול 'mysql':

פתרון: התקן שוב את המודול הנדרש

הפתרון לשגיאה שנתקלתה לעיל הוא למחוק את ' node_modules ” בספרייה והתקן שוב את המודול הדרוש. כאן, מודול 'mysql' מותקן שוב לאחר מחיקת ספריית 'node_modules':

npm להתקין mysql

לאחר ההתקנה המוצלחת של 'mysql', החדש ' node_modules 'הספרייה נוצרת אוטומטית המכילה את מבנה התיקיות של מודול 'mysql' שבו 'index.js' קיים:

כעת, הפעל את הקובץ '.js' שוב:

אינדקס צומת. js

כאן, הפלט אינו מייצר שום שגיאת 'אי אפשר למצוא מודול' עקב קיומו של קובץ כניסה בשם 'index.js' של מודול 'mysql':

מה לעשות אם השגיאה 'לא ניתן למצוא מודול' עדיין נמשכת?

אם ה' לא ניתן למצוא מודול ' השגיאה נמשכת לאחר פתרון אותה עם כל אחד מהפתרונות לעיל, ואז מחק את ' node_modules ' תיקייה. התיקיה 'node_modules' נוצרת באופן אוטומטי כאשר מותקן של צד שלישי מותקן. הוא מכיל את כל חבילות הצד השלישי בהן תלוי פרויקט Node.js.

יתר על כן, ה' package-lock.json 'קובץ גם יוצר באופן אוטומטי כאשר חבילה מותקנת עם 'npm'. זה שומר את התיעוד של תלות כמו גם תת-תלות שבהן תלויה החבילה יחד עם הגרסאות שלהן. אם החבילה מותקנת עם 'חוט' אז שם הקובץ הזה הוא ' מנעול חוט '.

פתרון: הסר את התיקיה 'node_modules' ואת הקובץ 'package-lock.json'.

הפתרון לשגיאה שנתקלתה הוא למחוק את התיקיה 'node_modules' ואת הקובץ 'package-lock.json/yarn.lock' ולהתקין שוב את החבילה הנדרשת.

בלינוקס , ניתן למחוק את התיקיה והקבצים שצוינו לעיל בעזרת ה' rm הפקודה (הסר)':

rm - חבילת rf node_modules - לנעול. json //מחק תיקייה וקובץ

ls // הצג קובץ וספריות

בפקודה לעיל ה' ' הדגל מוחק את התיקיה שצוינה ' באופן רקורסיבי כולל את כל ספריות המשנה שלו ואת ה-' ו 'דגל אומר למתורגמן לבצע משימה זו' בכוח ”:

הפלט מראה שהתיקיה 'node_modules' וקובץ 'package-lock.json/yarn.lock' הוסרו לחלוטין מהפרויקט הנוכחי של Node.js:

בווינדוס , המשתמש יכול למחוק את התיקיה 'node_modules' ואת הקובץ 'package-lock.json/yarn.lock' פשוט על ידי לחיצה על ' לִמְחוֹק ' או באמצעות האפשרות 'מחק' מהתפריט הנפתח.

זה הכל על פתרון השגיאה 'לא ניתן למצוא מודול' ב-Node.js.

סיכום

כדי לפתור את ' לא ניתן למצוא מודול 'שגיאה, 'התקן את המודול הנדרש', 'ציין את הנתיב הנכון שלו', 'הקלד את האותיות הנכונות בשיטת 'require()', וגם 'הקלד את סיומת הקובץ הנכונה'. יתרה מכך, ניתן גם לפתור את 'התקנת המודול באופן מקומי' בפרויקט Node.js. אם השגיאה הספציפית נמשכת, הסר את התיקיה 'node_modules', את הקובץ 'package-lock.json', ולאחר מכן התקן שוב את המודול הנדרש באמצעות 'npm/yarn'. פוסט זה דן בכל הסיבות האפשריות יחד עם הפתרון שלהם לפתרון השגיאה 'לא ניתן למצוא מודול' באמצעות Node.js.