البرمجة

البدء ببرمجة Node.js

أول برنامج في بيئة Node.js وتنفيذه

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


ما هي بيئة Node.js؟

Node.js هي بيئة تشغيل مفتوحة المصدر تعتمد على محرك جافا سكريبت V8 الذي طورته شركة جوجل، والمستخدم في متصفح كروم. تسمح هذه البيئة بتشغيل كود جافا سكريبت خارج المتصفح على الخادم (Server-side)، مما يجعل من الممكن تطوير تطبيقات خلفية متكاملة باستخدام جافا سكريبت، بدلاً من الحاجة إلى لغات برمجة تقليدية مثل PHP أو Python.

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


مميزات بيئة Node.js

  • أداء عالي: بفضل محرك V8 السريع والتنفيذ غير المتزامن.

  • مكتبات ضخمة: من خلال مدير الحزم npm الذي يحتوي على ملايين الحزم الجاهزة.

  • لغة واحدة للواجهة والخلفية: استخدام جافا سكريبت في الواجهة الأمامية والخلفية.

  • قابلة للتوسع: تدعم بناء تطبيقات قوية ومتعددة المستخدمين.

  • مجتمع نشط: دعم كبير وتحديثات مستمرة.


إعداد بيئة العمل الخاصة بـ Node.js

قبل البدء في كتابة البرنامج الأول، يجب إعداد بيئة العمل بشكل صحيح. تتلخص الخطوات فيما يلي:

1. تحميل Node.js وتثبيته

يمكن تحميل Node.js من الموقع الرسمي https://nodejs.org، حيث يتوفر نسختان رئيسيتان:

  • الإصدار المستقر (LTS): مناسب للمشاريع التي تحتاج إلى استقرار عالي.

  • الإصدار الحالي (Current): يحتوي على أحدث الميزات لكنه أقل استقرارًا.

يفضل تنزيل نسخة LTS وتثبيتها لأنها الأنسب لمعظم المشاريع، خصوصًا لمن يبدأون حديثًا في التعامل مع بيئة Node.js.

2. التحقق من التثبيت

بعد تثبيت Node.js، يمكن التحقق من نجاح التثبيت عبر فتح نافذة الأوامر (Terminal أو Command Prompt) وكتابة الأمرين التاليين:

bash
node -v npm -v

الأمر الأول يعرض نسخة Node.js المثبتة، والثاني يعرض نسخة مدير الحزم npm، وهما ضروريان للعمل.


كتابة أول برنامج في Node.js

بعد التأكد من تثبيت Node.js، يمكننا البدء بكتابة أول برنامج بسيط. عادةً ما يكون البرنامج الأول في أي لغة برمجة هو “Hello World” أي طباعة عبارة “مرحبًا بالعالم”.

1. إنشاء ملف البرنامج

نبدأ بإنشاء ملف جديد نصي، وليكن اسمه app.js. يمكن القيام بذلك باستخدام أي محرر نصوص أو بيئة تطوير متكاملة (IDE) مثل Visual Studio Code، Sublime Text، أو حتى المفكرة العادية.

2. كتابة الكود

نكتب داخل الملف السطر التالي:

javascript
console.log('مرحبًا بالعالم');

يستخدم هذا السطر دالة console.log المدمجة في Node.js لطباعة النص بين الأقواس على شاشة الطرفية.

3. تشغيل البرنامج

لحظة التنفيذ تتم من خلال الطرفية (Terminal):

  • ندخل إلى المجلد الذي يحتوي على الملف app.js باستخدام الأمر:

bash
cd path/to/your/folder
  • ثم نشغل البرنامج باستخدام الأمر:

bash
node app.js

بعد تنفيذ هذا الأمر، ستظهر على الشاشة العبارة:

مرحبًا بالعالم

وهكذا نكون قد أنشأنا وشغلنا أول برنامج بنجاح في بيئة Node.js.


شرح تفصيلي لما يحدث خلف الكواليس

محرك V8

عندما نكتب كود جافا سكريبت، يقوم محرك V8 (المضمن في Node.js) بترجمته إلى تعليمات آلة (Machine Code) ليتم تنفيذه مباشرة على المعالج، مما يمنح أداءً سريعًا.

النظام الحدثي (Event Loop)

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


إنشاء برنامج أكثر تعقيدًا: خادم ويب بسيط

الخطوة التالية بعد تشغيل أول برنامج هي تجربة شيء أكثر عملية، مثل إنشاء خادم ويب بسيط باستخدام Node.js.

1. كتابة كود الخادم

أنشئ ملفًا جديدًا باسم server.js واكتب فيه الكود التالي:

javascript
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain; charset=utf-8'); res.end('مرحبًا بك في خادم Node.js'); }); server.listen(port, hostname, () => { console.log(`الخادم يعمل على http://${hostname}:${port}/`); });

2. شرح الكود

  • استدعاء مكتبة HTTP: http هي مكتبة مضمنة في Node.js تسمح بإنشاء خوادم ويب.

  • إنشاء خادم: createServer تأخذ دالة رد نداء (callback) لمعالجة الطلبات القادمة.

  • إعداد الرؤوس وحالة الاستجابة: نحدد أن نوع المحتوى نص عادي مع الترميز UTF-8.

  • إرسال الرد: res.end تنهي الاستجابة وتُرسل النص.

  • تشغيل الخادم: listen يبدأ الاستماع على المنفذ 3000 في العنوان المحلي.

3. تشغيل الخادم

في الطرفية، نشغل الأمر:

bash
node server.js

سيظهر رسالة تؤكد عمل الخادم على العنوان http://127.0.0.1:3000/. عند فتح هذا الرابط في المتصفح، ستظهر رسالة “مرحبًا بك في خادم Node.js”.


أهمية مدير الحزم npm

مدير الحزم npm هو الأداة الأساسية التي تمكن مطوري Node.js من استخدام مكتبات وأطر عمل متنوعة لتسهيل تطوير التطبيقات. يأتي npm مرفقًا مع Node.js ويحتوي على ملايين الحزم التي يمكن تثبيتها ببساطة عبر أوامر في الطرفية.

مثال على تثبيت مكتبة خارجية:

bash
npm install express

مكتبة Express هي إطار عمل ويب شائع وسهل الاستخدام لإنشاء خوادم ويب أكثر تعقيدًا.


استخدام Express لإنشاء خادم ويب مبسط

بعد تثبيت Express، يمكن كتابة خادم ويب بطريقة أكثر تنظيماً وبميزات إضافية.

1. إنشاء ملف express_server.js وكتابة الكود التالي:

javascript
const express = require('express'); const app = express(); const port = 3000; app.get('/', (req, res) => { res.send('مرحبًا بك في خادم Express!'); }); app.listen(port, () => { console.log(`خادم Express يعمل على http://localhost:${port}`); });

2. تشغيل الخادم:

bash
node express_server.js

هذا الخادم يستقبل طلبات الـ GET على الصفحة الرئيسية / ويرسل ردًا نصيًا.


فوائد Node.js في بيئة التطوير الحديثة

  • سرعة التطوير: بفضل جافا سكريبت واستخدام npm.

  • توحيد بيئة العمل: استخدام نفس اللغة في الواجهة والخلفية.

  • التعامل مع الوقت الحقيقي: مناسب لتطبيقات الدردشة، الألعاب، والتطبيقات التفاعلية.

  • دعم واسع للتقنيات الحديثة: مثل WebSockets، APIs، والخدمات المصغرة (Microservices).


نصائح عملية عند البدء مع Node.js

  • الحرص على تحديث Node.js وnpm بانتظام للاستفادة من أحدث الميزات والتحديثات الأمنية.

  • استخدام أدوات إدارة الإصدارات مثل nvm لتسهيل التبديل بين نسخ Node.js المختلفة.

  • الاستفادة من توثيق Node.js الرسمي والمجتمع النشط للحصول على حلول ومكتبات متنوعة.

  • التركيز على التعلم التدريجي، بدءًا من البرامج البسيطة إلى بناء تطبيقات متكاملة.

  • تجربة أدوات التطوير مثل nodemon التي تساعد على إعادة تشغيل البرنامج تلقائيًا عند التعديل.


ملخص الجدول التالي يوضح خطوات إنشاء أول برنامج في Node.js

المرحلة الوصف الأمر / الخطوة
تثبيت Node.js تنزيل وتثبيت من الموقع الرسمي https://nodejs.org
التحقق من التثبيت عرض نسخ Node.js و npm node -v و npm -v
إنشاء ملف البرنامج إنشاء ملف نصي باسم app.js
كتابة كود بسيط طباعة “مرحبًا بالعالم” console.log('مرحبًا بالعالم');
تشغيل البرنامج تنفيذ الكود عبر الطرفية node app.js
إنشاء خادم ويب استخدام مكتبة HTTP لإنشاء الخادم كود في server.js
تشغيل خادم الويب تشغيل الخادم وعرض النتيجة node server.js
تثبيت مكتبة خارجية تثبيت Express باستخدام npm npm install express
استخدام Express كتابة خادم ويب باستخدام Express كود في express_server.js

المصادر والمراجع


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