البرنامج التعليمي لـ Node.js NPM: كيفية إنشاء الوحدات وتوسيعها ونشرها

وحدات Node.js

الوحدة النمطية في Node.js عبارة عن تغليف منطقي للتعليمات البرمجية في وحدة واحدة. من ممارسات البرمجة الجيدة دائمًا فصل التعليمات البرمجية بطريقة تجعلها أكثر قابلية للإدارة والصيانة للأغراض المستقبلية. وهنا يأتي دور الوحدات النمطية في Node.js.

وبما أن كل وحدة هي كيان مستقل له وظيفته المغلفة الخاصة به، فيمكن إدارته كوحدة عمل منفصلة.

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

كما ذكرنا سابقًا، الوحدات النمطية في Node.js هي طريقة لتغليف التعليمات البرمجية في وحدة منطقية منفصلة. هناك العديد من الوحدات الجاهزة المتوفرة في السوق والتي يمكن استخدامها داخل Node js.

فيما يلي بعض الوحدات الشائعة المستخدمة في تطبيق Node js

  1. إطار صريح - Express هو إطار تطبيق ويب بسيط ومرن Node js يوفر مجموعة قوية من الميزات للويب و التليفون المحمول التطبيقات.
  2. مقبس - يتيح برنامج Switch.IO الاتصال القائم على الأحداث ثنائي الاتجاه في الوقت الفعلي. هذه الوحدة جيدة لإنشاء تطبيقات تعتمد على الدردشة.
  3. اليشم - Jade هو محرك قوالب عالي الأداء ويتم تنفيذه باستخدام جافا سكريبت للعقدة والمتصفحات.
  4. MongoDB - و MongoDB برنامج تشغيل Node.js هو برنامج تشغيل Node.js المدعوم رسميًا MongoDB.
  5. أعد تصحيح - Restify هو إطار عمل خفيف الوزن، يشبه الصريح لبناء واجهات برمجة تطبيقات REST
  6. بلوبيرد – بلوبيرد هي مكتبة وعد كاملة المواصفات مع التركيز علىnovaالميزات والأداء

استخدام الوحدات النمطية في Node.js

من أجل استخدام الوحدات في أ نود.جي إس التطبيق، يجب أولاً تثبيتها باستخدام مدير حزم Node.

يوضح سطر الأوامر أدناه كيف يمكن تثبيت الوحدة النمطية "express".

تثبيت npm السريع

استخدام الوحدات في Node.js

  • سيقوم الأمر أعلاه بتنزيل الملفات الضرورية التي تحتوي على "الوحدات السريعة" وسيتولى عملية التثبيت أيضًا
  • بمجرد تثبيت الوحدة، من أجل استخدام وحدة في تطبيق Node.js، تحتاج إلى استخدام الكلمة الأساسية "require". هذه الكلمة الأساسية هي طريقة يستخدمها Node.js لدمج وظائف الوحدة النمطية في التطبيق.

دعونا نلقي نظرة على مثال لكيفية استخدام الكلمة الرئيسية "تتطلب". يوضح مثال الكود "Guru99" أدناه كيفية استخدام الوظيفة المطلوبة

استخدام الوحدات في Node.js

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
});
var server=app.listen(3000,function()
{
});
  1. في العبارة الأولى نفسها، نستخدم الكلمة الأساسية "require" لتضمين الوحدة النمطية Express. الوحدة "السريعة" هي وحدة محسنة جافا سكريبت مكتبة لتطوير Node.js. هذه إحدى وحدات Node.js الأكثر استخدامًا.
  2. بعد تضمين الوحدة، من أجل استخدام الوظيفة داخل الوحدة، يجب إنشاء كائن. هنا يتم إنشاء كائن من الوحدة السريعة.
  3. بمجرد تضمين الوحدة باستخدام الأمر "require" وإنشاء "كائن"، يمكن استدعاء الطرق المطلوبة للوحدة السريعة. نحن هنا نستخدم الأمر set لتعيين محرك العرض، والذي يستخدم لتعيين محرك القوالب المستخدم في Node.js.
  4. ملاحظة:-(فقط لفهم القارئ؛ محرك القوالب هو أسلوب لإدخال القيم في تطبيق ما عن طريق التقاط البيانات من ملفات البيانات. هذا المفهوم مشهور جدًا في Angular JS حيث يتم استخدام الأقواس المتعرجة {{ key }} لاستبدال القيم في Angular JS صفحة الويب. تشير كلمة "مفتاح" الموجودة بين الأقواس المتعرجة بشكل أساسي إلى المتغير الذي سيتم استبداله بقيمة عند عرض الصفحة.)

  5. نحن هنا نستخدم طريقة الاستماع لجعل التطبيق يستمع على رقم منفذ معين.

كيفية إنشاء وحدات NPM

يتمتع Node.js بالقدرة على إنشاء وحدات مخصصة ويسمح لك بتضمين تلك الوحدات المخصصة في تطبيق Node.js الخاص بك.

دعونا نلقي نظرة على مثال بسيط لكيفية إنشاء الوحدة النمطية الخاصة بنا وتضمين تلك الوحدة في ملف التطبيق الرئيسي الخاص بنا. ستقوم وحدتنا بمهمة بسيطة تتمثل في إضافة رقمين.

دعونا نتبع الخطوات التالية لنرى كيف يمكننا إنشاء وحدات وإدراجها في تطبيقنا.

فولوwing هي عملية خطوة بخطوة حول كيفية إنشاء وحدات NPM

الخطوة 1) قم بإنشاء ملف ولصق الكود أدناه
قم بإنشاء ملف يسمى "Addition.js" وقم بتضمين الكود أدناه. سيحتوي هذا الملف على منطق الوحدة الخاصة بك.

يوجد أدناه الكود الذي سيدخل في هذا الملف؛

إنشاء وحدات NPM

var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};
  1. يتم استخدام الكلمة الأساسية "exports" للتأكد من إمكانية الوصول فعليًا إلى الوظيفة المحددة في هذا الملف بواسطة ملفات أخرى.
  2. نقوم بعد ذلك بتعريف دالة تسمى "AddNumber". تم تعريف هذه الوظيفة لتأخذ معلمتين، a وb. تتم إضافة الوظيفة إلى الوحدة "الصادرات" لجعل الوظيفة كوظيفة عامة يمكن الوصول إليها بواسطة وحدات التطبيق الأخرى.
  3. نحن أخيرًا نجعل وظيفتنا تُرجع القيمة المضافة للمعلمات.

الآن بعد أن أنشأنا وحدتنا المخصصة التي تتمتع بوظيفة إضافة رقمين. حان الوقت الآن لإنشاء تطبيق يستدعي هذه الوحدة.

في الخطوة التالية، سنرى في الواقع كيفية إنشاء التطبيق الذي سيستدعي الوحدة المخصصة لدينا.

الخطوة 2) إنشاء ملف التطبيق
قم بإنشاء ملف يسمى "app.js"، وهو ملف التطبيق الرئيسي الخاص بك وأضف الكود أدناه

إنشاء وحدات NPM

var Addition=require('./Addition.js');
console.log(Addition.AddNumber(1,2));
  1. نحن نستخدم الكلمة الأساسية "يتطلب" لتضمين الوظيفة في ملف Addition.js.
  2. بما أن الوظائف الموجودة في الملف Addition.js يمكن الوصول إليها الآن، فيمكننا الآن إجراء استدعاء للوظيفة AddNumber. في الدالة، نقوم بتمرير رقمين كمعلمات. نقوم بعد ذلك بعرض القيمة في وحدة التحكم.

إنشاء وحدات NPM

الناتج:

  • عند تشغيل ملف app.js، ستحصل على نتيجة بقيمة 3 في سجل وحدة التحكم.
  • والنتيجة هي أنه تم استدعاء الدالة AddNumber في الملف Addition.js بنجاح، وتم عرض القيمة التي تم إرجاعها وهي 3 في وحدة التحكم.

ملحوظة: - نحن لا نستخدم "مدير حزم العقدة" حتى الآن لتثبيت وحدة Addition.js الخاصة بنا. وذلك لأن الوحدة هي بالفعل جزء من مشروعنا على الجهاز المحلي. يظهر مدير حزم Node في الصورة عند نشر وحدة على الإنترنت، وهو ما نراه في الموضوع التالي.

توسيع الوحدات في Node.js

عند إنشاء الوحدات النمطية، من الممكن أيضًا توسيع وحدة واحدة أو وراثتها من وحدة أخرى.

في البرمجة الحديثة، من الشائع جدًا إنشاء مكتبة من الوحدات الشائعة ثم توسيع وظائف هذه الوحدات الشائعة إذا لزم الأمر.

دعونا نلقي نظرة على مثال لكيفية توسيع الوحدات النمطية في Node.js.

الخطوة 1) قم بإنشاء الوحدة الأساسية.

في مثالنا، قم بإنشاء ملف يسمى "Tutorial.js" ووضع الكود أدناه.

في هذا الكود، نقوم فقط بإنشاء دالة تقوم بإرجاع سلسلة إلى وحدة التحكم. السلسلة التي تم إرجاعها هي "Guru99 Tutorial".

توسيع الوحدات في Node.js

var exports=module.exports={};
exports.tutorial=function()
{
console.log("Guru99 Tutorial")
}
  1. يتم استخدام وحدة التصدير بحيث تكون أي وظيفة محددة في هذا الملف متاحة في وحدات أخرى في Node.js
  2. نحن نقوم بإنشاء وظيفة تسمى البرنامج التعليمي والتي يمكن استخدامها في وحدات Node.js الأخرى.
  3. نحن نعرض سلسلة "Guru99 Tutorial" في وحدة التحكم عند استدعاء هذه الوظيفة.

الآن بعد أن أنشأنا الوحدة الأساسية الخاصة بنا والتي تسمى Tutorial.js. لقد حان الوقت الآن لإنشاء وحدة نمطية أخرى تعمل على توسيع هذه الوحدة الأساسية.

سنستكشف كيفية القيام بذلك في الخطوة التالية.

الخطوة 2) بعد ذلك، سنقوم بإنشاء الوحدة الموسعة الخاصة بنا. أنشئ ملفًا جديدًا باسم "NodeTutorial.js" وضع الكود أدناه في الملف.

توسيع الوحدات في Node.js

var Tutor=require('./Tutorial.js');
exports.NodeTutorial=function()
{
console.log("Node Tutorial")
function pTutor()
{
var PTutor=Tutor
PTutor.tutorial();
}
}

Or
var Tutor=require('./Tutorial.js');
exports.NodeTutorial=function()
{
console.log("Node Tutorial")
this.pTutor = function ()
{
var PTutor=Tutor
PTutor.tutorial();
}
}

ملاحظة، فولوwing النقاط الرئيسية حول الكود أعلاه

  1. نحن نستخدم وظيفة "الطلب" في ملف الوحدة الجديد نفسه. نظرًا لأننا سنقوم بتوسيع ملف الوحدة الحالي "Tutorial.js"، فنحن بحاجة إلى تضمينه أولاً قبل توسيعه.
  2. نقوم بعد ذلك بإنشاء وظيفة تسمى "Nodetutorial". هذه الوظيفة سوف تفعل شيئين،
  • سيتم إرسال سلسلة "Node Tutorial" إلى وحدة التحكم.
  • سيتم إرسال السلسلة "Guru99 Tutorial" من الوحدة الأساسية "Tutorial.js" إلى الوحدة الموسعة "NodeTutorial.js".
  1. نحن هنا ننفذ الخطوة الأولى لإرسال سلسلة إلى "Node Tutorial" إلى وحدة التحكم.
  2. الخطوة التالية هي استدعاء الوظيفة من وحدة البرنامج التعليمي لدينا، والتي ستخرج السلسلة "Guru99 Tutorial" إلى console.log.

الخطوة 3) قم بإنشاء ملف app.js الرئيسي الخاص بك، وهو ملف التطبيق الرئيسي الخاص بك وقم بتضمين الكود أدناه.

توسيع الوحدات في Node.js

var localTutor=require('./NodeTutorial.js');
localTutor.NodeTutorial();
localTutor.NodeTutorial.pTutor();

Or use this code
var tut = new localTutor.NodeTutorial();  // Create and save object
tut.pTutor();  // Call function on object

الكود أعلاه يفعل ما يليwing أشياء؛

  1. يستدعي ملف التطبيق الرئيسي لدينا الآن وحدة "NodeTutorial".
  2. نحن نسمي وظيفة "NodeTutorial". من خلال استدعاء هذه الوظيفة، سيتم عرض النص "Node Tutorial" في سجل وحدة التحكم.
  3. منذ أن قمنا بتوسيع وحدة Tutorial.js الخاصة بنا وكشفنا عن وظيفة تسمى pTutor. كما أنه يستدعي الوحدة التعليمية في وحدة Tutorial.js، وسيتم عرض النص "Guru99 Tutorial" على وحدة التحكم أيضًا.

الإخراج:

نظرًا لأننا قمنا بتنفيذ كود app.js أعلاه باستخدام Node، فسنحصل على المتابعةwing الإخراج في ملف console.log

  • العقدة التعليمية
  • Guru99 تعليمي

حزمة نشر NPM (مدير حزم العقدة).

يمكن للمرء نشر الوحدة النمطية الخاصة به في مستودع Github الخاص به.

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

بدلًا من ذلك، يمكنك استخدام أمر تثبيت npm وتثبيت وحدة npm المنشورة.

التاليwing يجب اتباع الخطوات لنشر وحدة npm الخاصة بك

الخطوة 1) أنشئ مستودعك على GitHub (أداة لإدارة مستودع الأكواد عبر الإنترنت). يمكن استخدامه لاستضافة مستودعات التعليمات البرمجية الخاصة بك.

الخطوة2) عليك أن تخبر تثبيت npm المحلي الخاص بك عن هويتك. مما يعني أننا بحاجة إلى إخبار npm من هو مؤلف هذه الوحدة، وما هو email المعرف وأي عنوان URL للشركة، والذي يجب أن يكون مرتبطًا بهذا المعرف. كل هذه ديtails ستتم إضافتها إلى وحدة npm الخاصة بك عند نشرها.

الأوامر أدناه تحدد الاسم، email وعنوان URL لمؤلف وحدة npm.

قم بتعيين npm init.author.name "Guru99".

تعيين npm init.author.email “guru99@gmail.com "

قم بتعيين npm init.author.url "http://Guru99.com"

الخطوة 3) الخطوة التالية هي تسجيل الدخول إلى npm باستخدام بيانات الاعتماد المقدمة في الخطوة الأخيرة. لتسجيل الدخول، تحتاج إلى استخدام الأمر أدناه

npm login

الخطوة 4) تهيئة الحزمة الخاصة بك – الخطوة التالية هي تهيئة الحزمة لإنشاء ملف package.json. ويمكن القيام بذلك عن طريق إصدار الأمر أدناه

npm init

عند إصدار الأمر أعلاه، ستتم مطالبتك ببعض الأسئلة. الأهم هو رقم إصدار الوحدة الخاصة بك.

الخطوة 5) النشر على GitHub – الخطوة التالية هي نشر ملفات المصدر الخاصة بك على GitHub. ويمكن القيام بذلك عن طريق تشغيل الأوامر أدناه.

git add.
git commit -m "Initial release"
git tag v0.0.1 
git push origin master --tags

الخطوة 6) انشر وحدتك – الجزء الأخير هو نشر الوحدة الخاصة بك في سجل npm. ويتم ذلك عبر الأمر أدناه.

npm publish

إدارة حزم الطرف الثالث باستخدام npm

كما رأينا، يتمتع "مدير حزم العقدة" بالقدرة على إدارة الوحدات المطلوبة بواسطة تطبيقات Node.js.

دعونا نلقي نظرة على بعض الوظائف المتاحة في مدير حزم العقدة لإدارة الوحدات

  1. تثبيت الحزم في الوضع العام – يمكن تثبيت الوحدات على المستوى العالمي، وهو ما يعني في الأساس أن هذه الوحدات ستكون متاحة لجميع مشاريع Node.js على جهاز محلي. يوضح المثال أدناه كيفية تثبيت "الوحدة السريعة" مع الخيار العام.تثبيت npm السريع – العالمي الخيار العام في البيان أعلاه هو ما يسمح بتثبيت الوحدات على المستوى العالمي.
  2. سرد كافة الحزم العالمية المثبتة على جهاز محلي. يمكن القيام بذلك عن طريق تنفيذ الأمر أدناه في موجه الأوامرقائمة npm - العالميةفيما يلي الإخراج الذي سيتم عرضه، إذا كنت قد قمت مسبقًا بتثبيت "الوحدة السريعة" على نظامك. هنا يمكنك رؤية الوحدات المختلفة المثبتة على الجهاز المحلي.

إدارة حزم الطرف الثالث مع NPM

  1. تثبيت إصدار محدد من الحزمة – في بعض الأحيان قد تكون هناك حاجة لتثبيت الإصدار المحدد من الحزمة فقط. بمجرد معرفة اسم الحزمة والإصدار ذي الصلة الذي يجب تثبيته، يمكنك استخدام أمر npm install لتثبيت هذا الإصدار المحدد. يوضح المثال أدناه كيفية تثبيت الوحدة التي تسمى الشرطة السفلية مع إصدار محدد من 1.7.0npm install الشرطة السفلية@1.7.0
  2. تحديث إصدار الحزمة – في بعض الأحيان قد يكون لديك إصدار أقدم من الحزمة في النظام، وقد ترغب في التحديث إلى أحدث إصدار متوفر في السوق. للقيام بذلك، يمكنك استخدام الأمر npm update. يوضح المثال أدناه كيفية تحديث حزمة الشرطة السفلية إلى الإصدار الأحدثتسطير تحديث npm
  3. Searching لحزمة معينة - للبحث عما إذا كان إصدار معين متاحًا على النظام المحلي أم لا، يمكنك استخدام أمر البحث الخاص بـ npm. سيتحقق المثال أدناه مما إذا كانت الوحدة السريعة مثبتة على الجهاز المحلي أم لا.npm البحث السريع
  4. إلغاء تثبيت حزمة – نفس الشيء الذي يمكنك من خلاله تثبيت الحزمة، يمكنك أيضًا إلغاء تثبيت الحزمة. تتم إزالة تثبيت الحزمة باستخدام أمر إلغاء التثبيت الخاص بـ npm. يوضح المثال أدناه كيفية إلغاء تثبيت الوحدة السريعةإلغاء تثبيت npm السريع

ما هو ملف package.json

يتم استخدام الملف "package.json" للاحتفاظ بملف البيانات الوصفية حول مشروع معين. توفر هذه المعلومات لمدير حزمة Node المعلومات اللازمة لفهم كيفية التعامل مع المشروع مع تبعياته.

تحتوي ملفات package.json على معلومات مثل وصف المشروع وإصدار المشروع في توزيع معين ومعلومات الترخيص وبيانات التكوين.

عادةً ما يوجد ملف package.json في الدليل الجذر لمشروع Node.js.

لنأخذ مثالاً لكيفية ظهور بنية الوحدة عند تثبيتها عبر npm.

تُظهر اللقطة أدناه محتويات ملف الوحدة السريعة عندما يتم تضمينها في مشروع Node.js الخاص بك. من اللقطة، يمكنك رؤية ملف package.json في المجلد السريع.

ملف Package.json

إذا قمت بفتح ملف package.json، فسترى الكثير من المعلومات في الملف.

فيما يلي لقطة لجزء من الملف. ال صريحة @ ~ 4.13.1 يذكر رقم إصدار الوحدة السريعة المستخدمة.

ملف Package.json

نبذة عامة

  • الوحدة النمطية في Node.js عبارة عن تغليف منطقي للتعليمات البرمجية في وحدة واحدة. يؤدي الفصل إلى وحدات إلى جعل التعليمات البرمجية أكثر قابلية للإدارة والصيانة للأغراض المستقبلية
  • هناك العديد من الوحدات المتاحة في السوق والتي يمكن استخدامها داخل Node.js مثل Express، وUnderscore، و MongoDB، الخ.
  • يتم استخدام مدير حزمة العقدة (npm) لتنزيل الوحدات النمطية وتثبيتها والتي يمكن استخدامها بعد ذلك في تطبيق Node.js.
  • يمكن للمرء إنشاء وحدات NPM مخصصة، وتوسيع هذه الوحدات، وكذلك نشر هذه الوحدات.
  • يمتلك مدير حزم Node مجموعة كاملة من الأوامر لإدارة وحدات npm على النظام المحلي مثل التثبيت وإلغاء التثبيت والتثبيتarchiنانوغرام، الخ.
  • يتم استخدام ملف package.json للاحتفاظ بمعلومات البيانات التعريفية الكاملة لوحدة npm.