البعض الآخر مثل الوحدات النمطية الطرف الثالث أو الوحدات المحلية المثبتة من خلال NPM ، ستعرض كل وحدة API العامة. بحيث يمكن للمطورين استيراد. يحب
نسخة الكود كما يلي:
var mod = require ('module_name')
بعد تنفيذ هذه الجملة ، سيتم تحميل الوحدة النمطية أو الوحدة النمطية المدمجة من خلال NPM داخل العقدة. تُرجع دالة الطلب كائنًا قد يكون واجهة برمجة التطبيقات المكشوفة وظيفة أو كائن أو سمة مثل دالة أو صفيف أو حتى كائن JS النوع التعسفي.
فيما يلي آليات التحميل والتخزين المؤقت لوحدات العقدة
1) تحميل الوحدة المدمجة (وحدة أساسية)
2) قم بتحميل وحدة الملف (وحدة ملفات)
3) قم بتحميل وحدة دليل الملفات (وحدة مجلد)
4) تحميل الوحدة في node_modules
5) ذاكرة التخزين المؤقت تلقائيا الوحدات النمطية
1. تحميل الوحدة المدمجة
يتم تجميع الوحدة النمطية المدمجة للعقدة في نموذج ثنائي ، ويتم استخدام الاسم مباشرة بدلاً من مسار الملف عند الرجوع إليه. عندما يكون للوحدة النمطية الطرف الثالث ووحدة مدمجة نفس الاسم ، فإن الوحدة النمطية المدمجة ستتجاوز وحدة الطرف الثالث بنفس الاسم. لذلك ، عند التسمية ، يجب أن تكون حريصًا على عدم امتلاك نفس اسم الوحدة المدمجة. إذا حصلت على وحدة HTTP
نسخة الكود كما يلي:
var http = require ('http')
HTTP التي تم إرجاعها هي وحدة مدمجة تنفذ عقدة وظيفة HTTP.
2. قم بتحميل وحدة الملفات
المسار المطلق
نسخة الكود كما يلي:
var mymod = require ('/home/base/my_mod')
أو المسار النسبي
نسخة الكود كما يلي:
var mymod = require ('./ my_mod')
لاحظ أن الامتداد ".js" يتم تجاهله هنا ، ويتم ما يلي
نسخة الكود كما يلي:
var mymod = require ('./ my_mod')
var mymod = require ('./ my_mod.js')
3. قم بتحميل وحدة دليل الملفات
يمكنك طلب دليل مباشرة ، على افتراض وجود دليل يدعى دليل ، مثل
نسخة الكود كما يلي:
var mymod = require ('./ folder')
في هذه المرحلة ، ستقوم Node بالبحث في دليل المجلد بأكمله ، ستفترض Node أن المجلد عبارة عن حزمة ويحاول العثور على حزمة تعريف تعريف الحزمة. إذا كان دليل المجلد لا يحتوي على ملف package.json ، فستفترض العقدة أن الملف الرئيسي الافتراضي هو index.js ، مما يعني أنه سيتم تحميل index.js. إذا لم يكن index.js موجودًا ، فسوف يفشل التحميل.
إذا كان هيكل الدليل كما يلي
تم تعريف package.json على النحو التالي
نسخة الكود كما يلي:
{
"الاسم": "حزمة" ،
"الرئيسي": "moda.js"
}
في هذا الوقت ، ستطلب ("./ المجلد") إرجاع الوحدة النمطية moda.js. إذا لم تكن حزمة. إذا لم يكن index.js موجودًا ، فسيحدث استثناء الحمل.
4. تحميل الوحدة النمطية في node_modules
إذا لم يكن اسم الوحدة هو المسار أو الوحدة النمطية المدمجة ، فسيحاول العقدة البحث في مجلد Node_Modules في الدليل الحالي. إذا لم يتم العثور على node_modules في الدليل الحالي ، فستبحث العقدة من node_modules في الدليل الأصل ، ثم تستمر بشكل متكرر حتى الدليل الجذر.
لا تقلق ، يسمح لنا أمر NPM بتثبيت دليل Node_Modules وتحديثه بشكل مريح للغاية.
5. ذاكرة التخزين المؤقت تلقائيًا وحدات محملة
يتم تخزين العقدة للوحدة المحملة مؤقتًا دون الحاجة إلى إعادة البحث في كل مرة. هنا مثال
moda.js
نسخة الكود كما يلي:
console.log ('الوحدة النمطية moda تبدأ التحميل ...')
الصادرات = دالة () {
console.log ('hi')
}
console.log ('moda moda ")
init.js
نسخة الكود كما يلي:
var mod1 = require ('./ moda')
var mod2 = require ('./ moda')
console.log (mod1 === mod2)
تنفيذ سطر الأوامر:
عقدة init.js
أدخل على النحو التالي
يمكن ملاحظة أنه على الرغم من المطلوب مرتين ، إلا أنه لا يزال يتم تنفيذ moda.js مرة واحدة فقط. MOD1 و MOD2 متماثلان ، أي كلا المرجعين يشيران إلى نفس كائن الوحدة النمطية.