مكتبة JavaScript القياسية (Node.js): نظرة شاملة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مكتبة JavaScript القياسية (Node.js): نظرة شاملة



Node.js هي بيئة تشغيل لـ JavaScript، مبنية على محرك V8 من Google. من أهم مزاياها المكتبة القياسية الغنية، التي توفر وحدات جاهزة لحل مجموعة متنوعة من المهام: من التعامل مع نظام الملفات إلى إنشاء خوادم HTTP. في هذه المقالة، سنستعرض بالتفصيل الوحدات الرئيسية للمكتبة القياسية في Node.js، ونعرض أمثلة على استخدامها، ونشرح متى يتم استخدام أي وحدة.



1. الوحدة fs (نظام الملفات)

تتيح الوحدة fs التعامل مع نظام الملفات: قراءة وكتابة وحذف الملفات والمجلدات، بالإضافة إلى تتبع التغييرات. توفر هذه الوحدة طرقًا متزامنة وغير متزامنة.



const fs = require('fs');

// قراءة غير متزامنة لملفfs.readFile('example.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data);});

// كتابة متزامنة لملفfs.writeFileSync('output.txt', 'Hello, Node.js!');


  • fs.readFile() — قراءة غير متزامنة لملف.
  • fs.writeFileSync() — كتابة متزامنة للبيانات في ملف.
  • fs.mkdir() — إنشاء مجلد.
  • fs.unlink() — حذف ملف.


2. الوحدة path

توفر الوحدة path أدوات للتعامل مع مسارات الملفات والمجلدات. تقوم تلقائيًا بمعالجة الاختلافات بين أنظمة التشغيل (Windows, Linux, macOS).



const path = require('path');

const filePath = '/home/user/docs/file.txt';console.log(path.dirname(filePath)); // /home/user/docsconsole.log(path.basename(filePath)); // file.txtconsole.log(path.extname(filePath)); // .txt


  • path.join() — يدمج أجزاء المسار.
  • path.resolve() — يحول المسار النسبي إلى مسار مطلق.
  • path.normalize() — يقوم بتطبيع المسار (يزيل .. و . الزائدة).


3. الوحدة http

تتيح الوحدة http إنشاء خوادم وعملاء HTTP. هذه هي الأساس لبناء تطبيقات الويب وواجهات برمجة التطبيقات (API).



const http = require('http');

const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello, World!');});

server.listen(3000, () => { console.log('الخادم يعمل على المنفذ 3000');});


  • http.createServer() — ينشئ مثيلاً للخادم.
  • http.request() — ينفذ طلب HTTP إلى مورد خارجي.
  • http.get() — نسخة مبسطة من request() لطلبات GET.


4. الوحدة events

تنفذ الوحدة events نمط "المراقب" (Observer). تتيح إنشاء أحداث مخصصة والاشتراك فيها. معظم كائنات Node.js (مثل التدفقات، الخوادم) ترث من EventEmitter.



const EventEmitter = require('events');

class MyEmitter extends EventEmitter {}

const myEmitter = new MyEmitter();myEmitter.on('event', () => { console.log('حدث الحدث!');});myEmitter.emit('event');


  • emitter.on() — الاشتراك في حدث.
  • emitter.emit() — إطلاق حدث.
  • emitter.once() — الاشتراك في حدث لمرة واحدة.


5. الوحدة stream

التدفقات (streams) هي مفهوم أساسي في Node.js للتعامل مع البيانات التي تتم معالجتها على أجزاء، وليس ككل. هذا مفيد بشكل خاص لـ

توصيات