Node.js📅 2026-11-02⏱ 8 دقائق قراءة🟢 مقال 2 من 10

أول برنامج Node.js لك — من الطرفية إلى المتصفح 2026

دليل عملي مفصل لكتابة وتشغيل أول برنامج Node.js — الطباعة، المتغيرات، والوحدات، مع تمارين وحلول

في المقال السابق، قمنا بتثبيت Node.js وإعداد بيئة العمل. الآن حان الوقت لكتابة أول برنامج Node.js وفهم كيف يعمل.

في هذا الدليل العملي، سنأخذك خطوة بخطوة من الطباعة في الطرفية إلى التعامل مع المتغيرات والوحدات، مع تمارين وحلول.

لماذا نبدأ بـ "Hello World"؟

برنامج "Hello World" هو تقليد قديم في عالم البرمجة. السبب في أهميته:

  • يتحقق من أن بيئة العمل تعمل — إذا ظهرت الرسالة، فكل شيء جاهز.
  • يعرّفك على بنية البرنامج — كيف يُكتب الكود وكيف يُشغّل.
  • يعطيك إحساساً بالإنجاز — أول برنامج يعمل هو لحظة لا تُنسى.
  • يبني الثقة — تنتقل من "لا أعرف شيئاً" إلى "أنا أبرمج".

الفرق بين Node.js والمتصفح

المعيارالمتصفحNode.js
البيئةالمتصفحالسيرفر
DOM✅ متاح❌ غير متاح
window✅ متاح❌ غير متاح
fs (الملفات)❌ غير متاح✅ متاح
process❌ غير متاح✅ متاح
Console✅ متاح✅ متاح

⚠️ مهم: document و window غير متاحة في Node.js — لأنها خاصة بالمتصفح.

الطريقة الأولى: تشغيل Node.js من الطرفية

الخطوة 1: إنشاء مجلد المشروع

افتح VS Code، ثم:

  1. اذهب إلى File → Open Folder
  2. اختر مجلد my-first-node الذي أنشأته في المقال السابق
  3. أو أنشئ مجلداً جديداً باسم node-learning

الخطوة 2: إنشاء ملف hello.js

داخل VS Code:

  1. اضغط Ctrl + N لإنشاء ملف جديد
  2. اضغط Ctrl + S لحفظه
  3. احفظه باسم hello.js

الخطوة 3: كتابة أول سطر كود

اكتب في الملف:

console.log("مرحباً من Node.js! 🎉");

احفظ الملف بـ Ctrl + S.

شرح الكود:

  • console: كائن (object) يمثل الطرفية.
  • .log(): دالة تطبع ما بداخلها.
  • "مرحباً من Node.js! 🎉": النص (string).

الخطوة 4: تشغيل البرنامج

في Terminal، اكتب:

node hello.js

النتيجة المتوقعة:

مرحباً من Node.js! 🎉

🎉 مبروك! كتبت وشغّلت أول برنامج Node.js!

الخطوة 5: إضافة المزيد من الأسطر

أضف أسطراً أخرى:

console.log("مرحباً من Node.js! 🎉");
console.log("اسمي أحمد");
console.log("أتعلم Backend Development");
console.log("اليوم هو يوم رائع!");

شغّل البرنامج:

node hello.js

النتيجة:

مرحباً من Node.js! 🎉
اسمي أحمد
أتعلم Backend Development
اليوم هو يوم رائع!

لاحظ: Node.js ينفذ الأسطر بالترتيب من الأعلى إلى الأسفل.

الطريقة الثانية: تشغيل Node.js تفاعلياً (REPL)

REPL = Read-Eval-Print Loop.

لتشغيله:

node

النتيجة:

Welcome to Node.js v20.x.x.
Type ".help" for more information.
>

جرب الأوامر:

> 2 + 3
5
> "مرحباً" + " " + "بالعالم"
'مرحباً بالعالم'
> [1, 2, 3].map(n => n * 2)
[ 2, 4, 6 ]
> .exit

الفائدة: تجربة سريعة للكود بدون إنشاء ملف.

المتغيرات في Node.js

المتغيرات هي نفسها في JavaScript:

const name = "أحمد";
let age = 25;
var city = "عمان";  // تجنبه

console.log(name);   // أحمد
console.log(age);    // 25
console.log(city);   // عمان

⚠️ نصيحة: استخدم const افتراضياً، و let عند الحاجة للتغيير.

أنواع البيانات

// String
const firstName = "أحمد";
const lastName = 'محمد';

// Number
const price = 99.99;
const quantity = 5;

// Boolean
const isActive = true;

// Array
const fruits = ["تفاح", "موز", "برتقال"];

// Object
const user = {
  name: "أحمد",
  age: 25,
  email: "[email protected]",
};

// Null
const nothing = null;

// Undefined
let notDefined;

المصفوفات في Node.js

const numbers = [1, 2, 3, 4, 5];

// إضافة
numbers.push(6);

// حذف
numbers.pop();

// التحويل
const doubled = numbers.map(n => n * 2);

// التصفية
const evens = numbers.filter(n => n % 2 === 0);

// التجميع
const sum = numbers.reduce((acc, n) => acc + n, 0);

console.log(sum);  // 15

الكائنات في Node.js

const user = {
  name: "أحمد",
  age: 25,
  greet() {
    return `مرحباً، أنا ${this.name}`;
  },
};

console.log(user.greet());  // مرحباً، أنا أحمد

// إضافة خاصية
user.email = "[email protected]";

// حذف خاصية
delete user.age;

الوحدات (Modules)

الوحدات هي طريقة لتقسيم الكود إلى ملفات.

1. require (الطريقة التقليدية - CommonJS)

math.js:

function add(a, b) {
  return a + b;
}

function subtract(a, b) {
  return a - b;
}

module.exports = { add, subtract };

index.js:

const math = require("./math");

console.log(math.add(5, 3));       // 8
console.log(math.subtract(5, 3));  // 2

2. import (الطريقة الحديثة - ES Modules)

math.mjs:

export function add(a, b) {
  return a + b;
}

export function subtract(a, b) {
  return a - b;
}

index.mjs:

import { add, subtract } from "./math.mjs";

console.log(add(5, 3));       // 8
console.log(subtract(5, 3));  // 2

⚠️ للاستخدام ES Modules: أضف في package.json:

"type": "module"

الوحدات المدمجة

Node.js يحتوي على وحدات مدمجة جاهزة:

1. os — معلومات النظام

const os = require("os");

console.log("نظام التشغيل:", os.platform());
console.log("المعالجات:", os.cpus().length);
console.log("الذاكرة الحرة:", os.freemem());

2. path — التعامل مع المسارات

const path = require("path");

console.log(path.join("users", "documents", "file.txt"));
// users/documents/file.txt

3. fs — نظام الملفات

const fs = require("fs");

// قراءة ملف
const content = fs.readFileSync("file.txt", "utf-8");
console.log(content);

// كتابة ملف
fs.writeFileSync("output.txt", "مرحباً!");

4. process — معلومات العملية

console.log("الإصدار:", process.version);
console.log("المسار:", process.cwd());
console.log("المتغيرات:", process.env.NODE_ENV);

مثال عملي: آلة حاسبة

calculator.js:

function add(a, b) {
  return a + b;
}

function subtract(a, b) {
  return a - b;
}

function multiply(a, b) {
  return a * b;
}

function divide(a, b) {
  if (b === 0) throw new Error("لا يمكن القسمة على صفر");
  return a / b;
}

module.exports = { add, subtract, multiply, divide };

index.js:

const { add, subtract, multiply, divide } = require("./calculator");

console.log("5 + 3 =", add(5, 3));
console.log("5 - 3 =", subtract(5, 3));
console.log("5 × 3 =", multiply(5, 3));
console.log("6 ÷ 2 =", divide(6, 2));

النتيجة:

5 + 3 = 8
5 - 3 = 2
5 × 3 = 15
6 ÷ 2 = 3

تمارين عملية

تمرين 1: طباعة معلوماتك

اكتب برنامجاً يطبع:

  • اسمك
  • عمرك
  • مدينتك

الحل:

console.log("الاسم: أحمد");
console.log("العمر: 25");
console.log("المدينة: عمان");

تمرين 2: استخدام المتغيرات

أعد كتابة التمرين السابق باستخدام المتغيرات.

الحل:

const name = "أحمد";
const age = 25;
const city = "عمان";

console.log(`الاسم: ${name}`);
console.log(`العمر: ${age}`);
console.log(`المدينة: ${city}`);

تمرين 3: العمليات الحسابية

اكتب برنامجاً يحسب مجموع رقمين.

الحل:

const num1 = 10;
const num2 = 5;
const sum = num1 + num2;

console.log(`المجموع: ${sum}`);

تمرين 4: المصفوفات

أنشئ مصفوفة أرقام، واطبع مجموعها.

الحل:

const numbers = [10, 20, 30, 40, 50];
const sum = numbers.reduce((acc, n) => acc + n, 0);

console.log(`المجموع: ${sum}`);  // 150

تمرين 5: الكائنات

أنشئ كائناً book يحتوي على title, author, year.

الحل:

const book = {
  title: "تعلم Node.js",
  author: "أحمد",
  year: 2026,
};

console.log(`${book.title} - ${book.author} (${book.year})`);

تمرين 6: وحدة مخصصة

أنشئ وحدة greetings.js تحتوي على دالة ترحيب.

الحل:

greetings.js:

function greet(name) {
  return `مرحباً ${name}!`;
}

module.exports = { greet };

index.js:

const { greet } = require("./greetings");

console.log(greet("أحمد"));  // مرحباً أحمد!

تمرين 7: وحدة os

اطبع معلومات نظام التشغيل.

الحل:

const os = require("os");

console.log("النظام:", os.platform());
console.log("الإصدار:", os.release());
console.log("المعالجات:", os.cpus().length);

تمرين 8: وحدة fs

اكتب ملفاً واقرأه.

الحل:

const fs = require("fs");

// كتابة
fs.writeFileSync("test.txt", "مرحباً من Node.js!");

// قراءة
const content = fs.readFileSync("test.txt", "utf-8");
console.log(content);  // مرحباً من Node.js!

حل المشاكل الشائعة

🔴 المشكلة 1: Cannot find module 'xxx'

السبب: الوحدة غير مثبتة أو المسار خاطئ.

الحل:

npm install xxx

أو تحقق من المسار النسبي:

const math = require("./math");    // ✅
const math = require("math");      // ❌ (يبحث في node_modules)

🔴 المشكلة 2: document is not defined

السبب: document غير متاح في Node.js.

الحل: استخدم fs للتعامل مع الملفات.

🔴 المشكلة 3: window is not defined

السبب: window غير متاح في Node.js.

الحل: استخدم global أو globalThis.

🔴 المشكلة 4: require is not defined (مع ES Modules)

السبب: استخدمت import/export لكن package.json لا يحتوي على "type": "module".

الحل:

"type": "module"

🔴 المشكلة 5: SyntaxError: Unexpected token

السبب: خطأ في كتابة الكود.

الحل: راجع السطر المشار إليه، وتأكد من الأقواس والفواصل.

جدول الأوامر الأساسية

الأمرالوظيفة
node file.jsتشغيل ملف
nodeفتح REPL
node -e "code"تشغيل كود مباشرة
node --versionعرض الإصدار
require("./file")استيراد وحدة
module.exportsتصدير وحدة

قائمة تحقق نهائية

المهمةالحالة
إنشاء ملف hello.js⬜
تشغيله بـ node hello.js⬜
تجربة REPL⬜
استخدام المتغيرات والأنواع⬜
إنشاء وحدة مخصصة⬜
استخدام os و fs⬜
حل التمارين الثمانية⬜

ماذا بعد هذا المقال؟

الآن بعد أن كتبت أول برنامج Node.js، أنت جاهز للمقال التالي:

  1. الوحدات ونظام الملفات — تعمق في modules و fs.
  2. npm وإدارة الحزم — تثبيت المكتبات.
  3. بناء HTTP Server — أول سيرفر.

الخلاصة

في هذا المقال، تعلمت:

  • ✅ الفرق بين Node.js والمتصفح.
  • ✅ تشغيل Node.js من الطرفية.
  • ✅ REPL للاختبار السريع.
  • ✅ المتغيرات والأنواع.
  • ✅ المصفوفات والكائنات.
  • ✅ الوحدات (require و import).
  • ✅ الوحدات المدمجة (os, path, fs, process).
  • ✅ حل 8 تمارين عملية.

تذكر: Node.js هو نفس JavaScript، لكن على السيرفر. أتقن الأساسيات قبل الانتقال.

📚 مقالات ذات صلة

Node.js

مشروع Node.js متكامل — API مع مصادقة JWT 2026

مشروع عملي شامل لبناء API متكامل بـ Node.js و Express و MongoDB — مع مصادقة JWT، رفع الملفات، والنشر

Node.js

MongoDB مع Node.js — دليل شامل 2026

دليل عملي مفصل لاستخدام MongoDB مع Node.js — Mongoose، Schema، CRUD، العلاقات، مع تمارين وحلول

Node.js

بناء REST API في Node.js — دليل شامل 2026

دليل عملي مفصل لبناء REST API احترافي — المبادئ، التنظيم، التحقق، والاختبار، مع تمارين وحلول