مكتبة Node.JS

هذا المقال هو جزء من سلسلة  (جافا سكربت)، يمكنكم الإطلاع على أجزائها الأخرى لاستكمال الفهم عبر الروابط التالية: ما هي Vue.js و JavaScript ES6 ،  ما هو Angular JS، ما هي الـjQuery؟ .

 

 برمج مكتبة Node.JS ريان داهل Ryan Dahl عام 2009، وهي من أهم مكتبات جافا سكربت JavaScript التي تعمل وتنفذ على الخادم وتعمل على محرك الجافا سكربت V8 التابع لمتصفح الكروم، وتستخدم لإنتاج تطبيقات الإنترنت التفاعلية مثل: التطبيقات والمواقع التي تُعنى ببث الفيديو، والتطبيقات ذات واجهة التطبيق الواحدة Single-Page Applications، و غيرها من تطبيقات الويب.


 Node.js مفتوحة المصدر، مجانية بالكامل، ويستخدمها الآلاف حول العالم


مميزات المكتبة

  1.  تعتبر المكتبة من المكتبات التي تدعم ميزة عدم التزامن، بمعنى أن تنفيذ البرنامج لا يتوقف منتظرا انتهاء إرسال واستقبال المعلومات بين حاسوب العميل والخادم، وأيضاً تعتبر من المكتبات الداعمة لإبقاء الكود البرمجي للتطبيق في حال السكون ما لم يتم استدعاءه لتنفيذ أمر معين.
  2. سريعة جدا في تنفيذ الكود البرمجي كونها قائمة أساسًا على محرك الجافا سكربت V8 الخاص بجوجل كروم.
  3.  مع أنها أحادية تنفيذ الكود البرمجي إلا أنها قابلة وبشكل كبير للتوسعة من حيث خدمة أكبر عدد من المستخدمين في آن واحد.
  4.  لا تستخدم خاصية التخزين المؤقت وإنما تقوم بمعالجة البيانات على شكل دفعات كبيرة مما يتيح للمستخدمين التعامل مع بيانات جديدة وغير مخزنة بشكل مسبق.
  5.  المكتبة مرخصة للاستعمال من قبل MIT.


طبيعة التطبيقات التي تستخدم هذه المكتبة


لا ينصح باستخدام المكتبة مع التطبيقات التي تأخذ الكثير من وقت المعالج المركزي للخادم وإنما مع التطبيقات التي تصنف ضمن: تطبيقات العمليات التفاعلية مع المستخدم I/O، وتطبيقات بث البيانات على الإنترنت (فيديو، صوت)، والتطبيقات التي بحاجة للتعامل مع البيانات الكثيفة والمتزامنة Data Intensive Real-time Applications أو اختصارًا (DIRT)، والتطبيقات القائمة على استخدام JSON API.


المكونات الأساسية لتطبيق يستخدم المكتبة


فيما يلي أهم المكونات البرمجية الأساسية لتطبيق يستخدم المكتبة

  1.  جلب الوحدات الأساسية اللازمة لتنفيذ التطبيق من خلال جملة Require.
  2.  إنشاء الخادم (برنامج خادم) من أجل الاستماع لطلبات الزبائن (برنامج زبون).
  3.  قراءة الطلب القادم من الزبون، معالجته و من ثم إرجاع النتيجة للزبون، و هذا مبدأ عمل البرامج ذات الهيكلية التركيبية (زبون \ خادم).


فيما يلي نموذج بسيط لبرنامج تمت كتابته باستعمال المكتبة


http.createServer(function (request, response) {
// Send the HTTP header
// HTTP Status: 200 : OK
// Content Type: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});

// Send the response body as "Hello World"
response.end('Hello World\n');
}).listen(8081);

// Console will print the message
console.log('Server running at http://127.0.0.1:8081/');


البرنامج بداية يقوم بإنشاء خادم والذي في حال إنشائه يدخل في مرحلة انتظار ( في المثال يستخدم مدخل رقم 8081) الطلبات من الزبائن (برامج) و التي تكون (الطلبات) على شكل أوامر نصية، في حال قدوم أمر يقوم البرنامج بمعالجته (في المثال أعلاه يرجع للزبون جملة Hello World). عند تشغيل الخادم يقوم بطباعة جملة Server running at من أجل التأكد أن الخادم يعمل حاليًا وفي حالة انتظار الأوامر.

ممكن استخدام مكتبات شبيهة مثل Jxcore و التي تعتبر تفرع من Node.JS ولكنها تعنى بإنتاج تطبيقات للأجهزة المحمولة. كذلك يمكن استخدام EventMachine و Libevent و Perl Object Environment.

من أشهر المواقع التي تستخدم المكتبة


Walmart, E-Pay/Paypal, Microdoft, LinkedIn, Yahoo, Google, Yammer, Netflix

إمسح وإقرأ

المصادر

شارك

المساهمون


اترك تعليقاً () تعليقات