كيفية حل الخطأ 'لا يمكن العثور على الوحدة النمطية' باستخدام Node.js؟

Kyfyt Hl Alkhta La Ymkn Al Thwr Ly Alwhdt Alnmtyt Bastkhdam Node Js



مثل لغات البرمجة الأخرى، لا يحتاج Node.js إلى تقسيم الكود المصدري للتطبيق إلى أجزاء صغيرة. يقوم بكتابة كافة التعليمات البرمجية المصدر في ملف '.js' ولا يسبب المترجم أي مشاكل. ومع ذلك، أثناء إنشاء تطبيق Node.js معقد للغاية، يوصى بتقسيم كود المصدر إلى وحدات أصغر ثم دمجها في تطبيق متماسك.

مخطط سريع

ما هي الوحدة النمطية في Node.js؟

في Node.js، ' وحدة 'يتوافق مع مكتبة تقوم ببناء اتصال مع تطبيق ما بناءً على سياقه. يسمح للمطورين بإعادة استخدام الكود المغلف عند الحاجة. يتم تصنيفها إلى ثلاث فئات رئيسية: الوحدات 'المدمجة' و'المحلية' و'الطرف الثالث'. تحتوي هذه الوحدات أيضًا على مجموعة واسعة من الأساليب والخصائص التي تنفذ العمليات المحددة وفقًا لوظائفها.







كيفية حل خطأ 'لا يمكن العثور على الوحدة النمطية' باستخدام Node.js؟

يدرج هذا القسم جميع الأسباب المحتملة التي تؤدي إلى ظهور الخطأ 'لا يمكن العثور على الوحدة النمطية' ويوفر أيضًا الحلول العملية لحلها:



السبب 1: الوحدة المطلوبة غير مثبتة

السبب الأكثر شيوعاً لـ ' لا يمكن العثور على الوحدة النمطية ” الخطأ هو أن المطلوب “ لم يتم تثبيت وحدة الطرف الثالث ” في مشروع Node.js الحالي. لنفترض أننا قمنا باستيراد وحدة 'mysql' التابعة لجهة خارجية في تطبيق Node.js بهذه الطريقة:



مقدار ثابت mysql = يتطلب ( 'ماي إس كيو إل' ) ;

في الأمر أعلاه، ' يتطلب() ' تتضمن الطريقة وحدة 'mysql' لتطبيق Node.js الحالي.





تنفيذ الملف '.js':

مؤشر العقدة. js

ينشئ الإخراج أدناه الخطأ الذي تمت مناقشته لأن وحدة 'mysql' غير مثبتة في مشروع Node.js الحالي:



الحل: تثبيت الوحدة المطلوبة

الحل للخطأ الذي تمت مناقشته أعلاه هو تثبيت الوحدة المطلوبة بشكل صحيح بمساعدة ' npm / غزل ' مدير مجموعة. بالنسبة لهذا السيناريو، يتم تثبيت وحدة 'mysql' المطلوبة باستخدام أمر التثبيت 'npm':

npm تثبيت الخلية

يُظهر الناتج التثبيت الناجح لوحدة 'mysql' في مشروع Node.js الحالي:

الآن قم بتنفيذ الملف '.js' مرة أخرى:

مؤشر العقدة. js

يمكن تحليل أن الأمر أعلاه قد تم تنفيذه بنجاح دون ظهور الخطأ 'لا يمكن العثور على الوحدة النمطية':

السبب 2: مسار الوحدة غير صحيح

سبب آخر ل' لا يمكن العثور على الوحدة النمطية 'الخطأ هو' مسار الوحدة النمطية غير صحيح '. يحدث هذا عادةً عندما يقوم المستخدم باستيراد وحدة محلية من خلال مسارها النسبي. لنفترض أن المستخدم قام بإنشاء وحدة مخصصة في مجلد معين وقام باستيرادها إلى تطبيق Node.js. قبل القيام بذلك، تأكد من صحة المسار المحدد وإلا سيتم مواجهة الخطأ الذي تمت مناقشته.

على سبيل المثال، وحدة محلية/محددة من قبل المستخدم تسمى ' myModule 'موجود في المجلد './custom-modules':

يقوم المستخدم باستيراد 'myModule' المميز أعلاه إلى تطبيق Node.js الحالي من خلال مساره النسبي:

مقدار ثابت اللغات = يتطلب ( './myModule' ) ;

قم بتشغيل الملف '.js':

مؤشر العقدة. js

يمكن ملاحظة أنه بسبب المسار غير الصحيح لـ 'myModule'، تم إنشاء خطأ 'لا يمكن العثور على الوحدة':

الحل: حدد مسار الوحدة الصحيح

الحل للخطأ الذي تمت مناقشته أعلاه هو تحديد المسار الصحيح أو الدقيق للوحدة التي توجد بها. قمنا هنا بتمرير المسار الصحيح 'myModule' لحل خطأ 'لا يمكن العثور على الوحدة':

مقدار ثابت اللغات = يتطلب ( './custom-modules/myModule' ) ;

بدء تشغيل الملف '.js':

مؤشر العقدة. js

يمكن ملاحظة أن الإخراج أدناه لا يُظهر الخطأ الذي تمت مواجهته لأنه تم تصحيح المسار المحدد للوحدة المستوردة:

السبب 3: اسم الوحدة غير صحيح (حساس لحالة الأحرف)

الوحدات هي ' حساسية الموضوع ' في Linux وmacOS، على سبيل المثال إذا كان اسم الوحدة مثبتًا بأحرف كبيرة وقام المستخدم باستيراده بأحرف صغيرة ثم ' لا يمكن العثور على الوحدة النمطية سيتم إنشاء خطأ. وذلك بسبب وجود عدم تطابق بين اسم الوحدة الفعلي وبيان الاستيراد.

هنا، يتم استيراد وحدة 'csvtojson' المثبتة بالأحرف الكبيرة إلى تطبيق Node.js:

مقدار ثابت com.csvtojson = يتطلب ( 'CSVTOJSON' ) ;

تنفيذ الملف '.js':

مؤشر العقدة. js

ينشئ الإخراج خطأ 'لا يمكن العثور على الوحدة النمطية' بسبب اسم الوحدة غير الصحيح:

الحل: اكتب اسم الوحدة الصحيح

الحل للخطأ المذكور أعلاه هو تحديد الحالة الصحيحة (السفلى أو العلوية) للوحدة المستوردة أثناء استخدام ' يتطلب() ' طريقة. في هذا السيناريو، يتم تحديد الوحدة النمطية 'csvtojson' في الأسلوب 'require()' في حالتها الصحيحة:

مقدار ثابت com.csvtojson = يتطلب ( 'كسفتوجسون' ) ;

قم بتشغيل الملف '.js' مرة أخرى:

مؤشر العقدة. js

الآن، لم يُنشئ الأمر أعلاه الخطأ 'لا يمكن العثور على الوحدة النمطية' لأن حالة الحزمة المستوردة هي نفس اسمها الفعلي:

السبب 4: امتداد الملف غير صحيح

ال ' لا يمكن العثور على الوحدة النمطية 'يمكن أن يحدث خطأ أيضًا بسبب' امتداد الملف غير صحيح '. كما هو الحال مع مسار الملف غير الصحيح، يحدث هذا في حالة الوحدات المحلية. على سبيل المثال، يتم إنشاء وحدة محلية في ملف '.json' ويتم تحديدها في تطبيق Node.js بامتداد '.js'، ثم يتم إنشاء الخطأ المحدد أعلاه:

في هذا السيناريو ' myModule.js 'الموضح في سبب 'مسار الوحدة غير الصحيح' تم أخذه كملف عينة. يتم الوصول إليه في تطبيق Node.js الحالي عن طريق تحديد امتداده '.json' مثل هذا:

مقدار ثابت اللغات = يتطلب ( './custom-modules/myModule.json' ) ;

تنفيذ الملف '.js':

مؤشر العقدة. js

ينشئ الإخراج خطأ 'لا يمكن العثور على الوحدة النمطية' بسبب امتداد الملف غير الصحيح لملف 'myModule':

الحل: اكتب ملحق الملف الصحيح

الحل للخطأ الذي تمت مناقشته هو كتابة ملحق الملف الصحيح الذي تم إنشاء الوحدة المحلية به. على سبيل المثال، حددنا امتداد الملف الصحيح للملف 'myModule.js' لحل الخطأ 'لا يمكن العثور على الوحدة النمطية':

مقدار ثابت اللغات = يتطلب ( './custom-modules/myModule.js' ) ;

قم بتشغيل الملف '.js':

مؤشر العقدة. js

الآن، تم تنفيذ الأمر أعلاه بنجاح دون ظهور الخطأ 'لا يمكن العثور على الوحدة النمطية':

السبب 5: التثبيت الشامل للوحدة النمطية

يمكن تثبيت وحدات العقدة محليًا (لمشروع معين) أو عالميًا (لجميع المشاريع). في لينكس ، إذا تم تثبيت الوحدة المطلوبة عالميًا في نظام تشغيل ويمكن الوصول إليها في مشروع معين دون التثبيت المحلي، فسيتم عرض ' لا يمكن العثور على الوحدة النمطية 'يتم إنشاء خطأ.

على سبيل المثال، ' com.mongodb ' يتم تثبيت الوحدة عالميًا في نظام التشغيل Linux عبر ' Sudo npm install -g mongodb ' الأمر ويتم الوصول إليه محليًا في مشروع العقدة المحدد:

مقدار ثابت com.mongodb = يتطلب ( 'مونجودب' )

قم بتشغيل الملف '.js':

مؤشر العقدة. js

ينشئ الإخراج الخطأ الذي تمت مناقشته لأنه لم يتم تثبيت 'mongodb' محليًا في مشروع Node الحالي:

الحل: تثبيت الوحدة محليًا

الحل للخطأ الذي تم مواجهته هو تثبيت الوحدة محليًا لمشروع Node.js محدد على نظام تشغيل يستند إلى Linux.

وهنا ' com.mongodb 'يتم تثبيت الوحدة محليًا في المشروع الحالي بمساعدة أمر التثبيت 'npm':

تثبيت npm mongodb

عند اكتمال التثبيت المحلي لـ 'mongodb'، قم باستيراده إلى ملف '.js' وتنفيذه:

مؤشر العقدة. js

يمكن ملاحظة أن خطأ 'لا يمكن العثور على الوحدة النمطية' قد تم حله عن طريق تثبيت الوحدة النمطية 'mongodb' محليًا لمشروع Node.js الحالي:

في ويندوز، لا يؤدي التثبيت العام والمحلي للوحدة النمطية إلى ظهور الخطأ 'لا يمكن العثور على الوحدة النمطية'.

السبب 6: ملف الإدخال مفقود

ال ' لا يمكن العثور على الوحدة النمطية 'يمكن أيضًا إنشاء خطأ بسبب فقدان ملف الإدخال الرئيسي في 'package.json' للوحدة. ملف الإدخال الرئيسي لكل وحدة هو ملف 'index.js' افتراضيًا.

لنفترض أنه إذا قام المستخدم بإزالته عن غير قصد، فسيتم إنشاء الخطأ الذي تمت مواجهته أعلاه. وذلك لأنه أثناء استيراد الوحدة المحددة ' يتطلب() ' ينتقل الأسلوب إلى مجلد تلك الوحدة ويبحث عن نقطة الإدخال، إذا لم تكن موجودة، فلن يتمكن من استيراد تلك الوحدة إلى تطبيق Node.js.

ملف الإدخال 'index.js' للوحدة المطلوبة موجود داخل بنية المجلد الخاص به. يعرض المقتطف أدناه ملف الإدخال الخاص بوحدة 'mysql':

الآن، تمت إزالة ملف 'index.js' المميز أعلاه من المجلد 'mysql' ثم تم استيراد وحدة 'mysql' إلى تطبيق Node.js:

مقدار ثابت mysql = يتطلب ( 'ماي إس كيو إل' )

تنفيذ الملف '.js':

مؤشر العقدة. js

هنا، يُنشئ الإخراج خطأ 'لا يمكن العثور على الوحدة النمطية' بسبب فقدان ملف الإدخال الخاص بوحدة 'mysql':

الحل: قم بتثبيت الوحدة المطلوبة مرة أخرى

الحل للخطأ المذكور أعلاه هو حذف ' node_modules ' الدليل وتثبيت الوحدة المطلوبة مرة أخرى. هنا، يتم تثبيت الوحدة 'mysql' مرة أخرى بعد حذف دليل 'node_modules':

npm تثبيت الخلية

بعد التثبيت الناجح لـ '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' وتثبيت الحزمة المطلوبة مرة أخرى.

في لينكس ، يمكن حذف المجلد والملفات المحددة أعلاه بمساعدة ما هو مذكور أدناه جمهورية مقدونيا (إزالة)' الأمر:

جمهورية مقدونيا - حزمة العقدة rf - قفل. json // حذف المجلد والملف

ليرة سورية // عرض الملفات والدلائل

في الأمر أعلاه ' 'علامة تحذف المجلد المحدد' بشكل متكرر ' بما في ذلك كافة الدلائل الفرعية و' F 'العلامة تخبر المترجم بأداء هذه المهمة' بقوة ':

يُظهر الإخراج أن المجلد '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.