التعامل مع الأوامر على سطر الأوامر باستخدام Node.js

الدرس التاسع والعشرون: التعامل مع الأوامر على سطر الأوامر باستخدام Node.js

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

1. ما هو Node.js؟

Node.js هو بيئة تنفيذ JavaScript على الخادم، مبنية على محرك V8 الخاص بـ Google Chrome. يتيح لك Node.js كتابة تطبيقات JavaScript تعمل على الخوادم بدلاً من المتصفحات. يتميز Node.js بعدة خصائص مثل:

  • غير متزامن (Asynchronous): لا ينتظر Node.js عمليات الإدخال والإخراج (I/O) مثل قراءة الملفات أو إرسال الطلبات الشبكية؛ بدلاً من ذلك، يتابع تنفيذ الكود، مما يعزز الأداء.
  • مبني على الأحداث (Event-driven): يعتمد على أحداث معينة لبدء أو إيقاف العمليات.
  • تدفق البيانات (Stream): يدير البيانات بشكل كفاءة باستخدام التدفقات (streams)، مما يسمح بالتعامل مع البيانات الكبيرة بكفاءة.

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

2. إنشاء تطبيق صغير باستخدام Node.js

لبدء استخدام Node.js، يجب أن يكون لديك Node.js و npm (مدير حزم Node) مثبتين على جهازك. يمكنك تنزيلهما من الموقع الرسمي Node.js.

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

أولاً، افتح سطر الأوامر وأنشئ مجلدًا جديدًا للمشروع:

mkdir my-node-app
cd my-node-app

ثم، قم بتهيئة مشروع Node.js باستخدام الأمر npm init:

npm init -y

سيقوم هذا بإنشاء ملف package.json يحتوي على معلومات المشروع.

الخطوة 2: كتابة تطبيق بسيط

الآن، سنكتب تطبيقًا بسيطًا يقوم بطباعة رسالة في سطر الأوامر. قم بإنشاء ملف app.js داخل مجلد المشروع:

// app.js
console.log("Hello, Node.js!");

الخطوة 3: تشغيل التطبيق

لتشغيل التطبيق، افتح سطر الأوامر واكتب:

node app.js

سيتم طباعة “Hello, Node.js!” في سطر الأوامر.

3. كيفية استخدام مكتبات مثل fs و path

مكتبة fs (نظام الملفات)

مكتبة fs (اختصار لـ “File System”) هي مكتبة مدمجة في Node.js تُستخدم للتفاعل مع الملفات والمجلدات. توفر العديد من الوظائف للعمل مع الملفات، مثل القراءة والكتابة والحذف.

قراءة ملف

لنفترض أننا نريد قراءة محتويات ملف text.txt:

const fs = require('fs');

// قراءة ملف بشكل غير متزامن
fs.readFile('text.txt', 'utf8', (err, data) => {
  if (err) {
    console.log('Error reading the file:', err);
  } else {
    console.log('File content:', data);
  }
});
كتابة ملف

يمكنك أيضًا استخدام fs.writeFile لكتابة بيانات إلى ملف:

const fs = require('fs');

// كتابة نص إلى ملف
fs.writeFile('output.txt', 'Hello, this is a test file!', (err) => {
  if (err) {
    console.log('Error writing to the file:', err);
  } else {
    console.log('File written successfully');
  }
});
حذف ملف

لحذف ملف، يمكنك استخدام fs.unlink:

const fs = require('fs');

// حذف ملف
fs.unlink('output.txt', (err) => {
  if (err) {
    console.log('Error deleting the file:', err);
  } else {
    console.log('File deleted successfully');
  }
});

مكتبة path (المسارات)

مكتبة path هي مكتبة مدمجة في Node.js تُستخدم للعمل مع المسارات. يمكنها دمج المسارات، استخراج أجزاء منها، وتحويلها إلى صيغة مستقلة عن النظام.

العمل مع المسارات
  • path.join(): دمج أجزاء من المسارات بطريقة آمنة عبر جميع الأنظمة. const path = require('path'); const fullPath = path.join('folder', 'subfolder', 'file.txt'); console.log(fullPath); // سيتم دمج المسارات بشكل صحيح
  • path.resolve(): تحويل المسار إلى مسار مطلق. const fullPath = path.resolve('folder', 'subfolder', 'file.txt'); console.log(fullPath); // سيُرجع المسار المطلق
  • path.basename(): للحصول على اسم الملف من مسار. const fileName = path.basename('/folder/subfolder/file.txt'); console.log(fileName); // file.txt
  • path.extname(): للحصول على امتداد الملف. const ext = path.extname('/folder/subfolder/file.txt'); console.log(ext); // .txt

4. مثال تطبيقي: تطبيق سطر الأوامر

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

// app.js
const fs = require('fs');
const path = require('path');

// قراءة ملف
const filePath = path.join(__dirname, 'input.txt');
fs.readFile(filePath, 'utf8', (err, data) => {
  if (err) {
    console.log('Error reading file:', err);
    return;
  }
  
  console.log('File content:', data);

  // كتابة محتوى الملف إلى ملف جديد
  const outputPath = path.join(__dirname, 'output.txt');
  fs.writeFile(outputPath, data, (err) => {
    if (err) {
      console.log('Error writing to file:', err);
    } else {
      console.log('Data written to output.txt');
    }
  });
});

في هذا المثال:

  • نقوم بقراءة ملف input.txt.
  • نطبع محتوياته في سطر الأوامر.
  • نكتب نفس المحتوى إلى ملف output.txt.

الخلاصة

  • Node.js هو بيئة JavaScript تعمل على الخوادم وتتيح لك إنشاء تطبيقات سطر الأوامر بالإضافة إلى تطبيقات الويب.
  • يمكنك استخدام المكتبات المدمجة مثل fs و path للعمل مع الملفات والمسارات بسهولة.
  • قمنا بإنشاء تطبيق بسيط باستخدام Node.js لقراءة وكتابة الملفات.

Node.js يُعد أداة قوية ومرنة لبناء تطبيقات جانبية وسطر أوامر وواجهات برمجة التطبيقات (APIs) باستخدام JavaScript.


اكتشاف المزيد من كود التطور

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك رد

Scroll to Top