Node.js للمبتدئين: أساسيات العمل مع الملفات

اليوم سنتحدث عن كيفية العمل مع نظام الملفات باستخدام Node.js ، والنظر في العمليات الأساسية التي تتم مع الملفات. تتضمن هذه العمليات ما يلي:

  • إنشاء ملف
  • قراءة الملف
  • كتابة البيانات إلى ملف
  • حذف الملف
  • إعادة تسمية الملف

الحاجة إلى إجراء مثل هذه العمليات تنشأ في مجموعة متنوعة من الحالات.



وحدة FS


لدى Node.js وحدة نمطية قياسية ، fs (اختصار لنظام الملفات) ، والتي توفر أدوات المطور للعمل مع نظام الملفات. يمكنك استيراده إلى المشروع كما يلي:

 var fs = require('fs'); 

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

 function fileHandler(){   fs.readFile('textFile.txt', 'utf8', (err, data) => {       if(err) throw err;       console.log(data);   }); } 

طريقة .readFile() ، والتي سنتحدث عنها أكثر ، مخصصة لقراءة الملفات. في هذا المثال ، تحتوي وظيفة رد الاتصال على معلمتين - err data . الأخطاء التي قد تحدث عند محاولة قراءة ملف تقع في المعلمة الأولى ، البيانات التي تم الحصول عليها بعد عملية ناجحة في المعلمة الثانية. لاحظ أن .readFile() طريقة غير متزامنة لوحدة fs . يطلق عليه إصدار متزامن .readFileSync() . يتم استخدام نهج مماثل لتسمية أساليب الوحدة النمطية الأخرى.

قم بإنشاء ملف جديد


لنبدأ بمثال:

 function fileHandler(){   fs.open('testFile.txt', 'w', (err) => {       if(err) throw err;       console.log('File created');   });  } 

هنا يتم استخدام طريقة fs.open() لإنشاء ملف جديد. يستغرق اسم ملف كوسيطة الأولى. حجه الثاني هو العلم الذي يخبر النظام بالضبط ما نريد القيام به مع الملف. في هذه الحالة ، هذه هي العلامة w (اختصار للكتابة) ، والتي تشير إلى أننا نريد فتح الملف للكتابة. يمكن أن يقبل الأسلوب .open() إشارات متعددة. هؤلاء بعض منهم:

  1. r : ملف مفتوح للقراءة
  2. r+ : فتح ملف للقراءة والكتابة
  3. rs : ملف مفتوح للقراءة في الوضع المتزامن
  4. w : فتح ملف للكتابة
  5. a : فتح ملف لكتابة البيانات إلى نهاية الملف
  6. a+ : افتح الملف لقراءة وكتابة البيانات إلى نهاية الملف

الآن ، قبل الانتقال إلى المثال التالي ، سنقوم بتحرير ملف testFile.txt تم إنشاؤه للتو باستخدام نوع من محرر النصوص. أضف النص التالي إليه:

 This is a test file. We're learning about Node.js File System. The End. 

كتابة البيانات إلى ملف


دعونا نتحدث عن كيفية إضافة شيء إلى ملف:

 function fileHandler(){   fs.appendFile('testFile.txt', ' This line is beyond the end.', (err) => {       if(err) throw err;       console.log('Data has been added!');   }); } 

نحن هنا نستخدم طريقة .appendFile() لإلحاق البيانات بنهاية ملف موجود. كحجة أولى ، تقبل هذه الطريقة اسم الملف ، باعتبارها الثانية - البيانات التي يجب إضافتها إلى نهاية الملف. الوسيطة الثالثة هي ، كالعادة ، وظيفة رد اتصال.

بعد تنفيذ التعليمات البرمجية الموضحة أعلاه بنجاح ، ستبدو محتويات الملف كما يلي:

 This is a test file. We're learning about Node.js File System. The End. This line is beyond the end. 

هناك طريقة أخرى لكتابة البيانات إلى ملف. يتضمن استخدام الأسلوب .writeFile() . تشبه هذه الطريقة إلى حد كبير .appendFile() ، ولكن لديها اختلاف مهم واحد. الحقيقة هي أنه باستخدام طريقة .appendFile() ، نضيف بيانات جديدة إلى الملف بعد البيانات الموجودة به بالفعل. وعند استخدام الأسلوب .writeFile() ، يتم استبدال محتويات الملف بأخرى جديدة. لنجرب هذه الطريقة:

 function fileHandler(){   fs.writeFile('testFile.txt', "I'm the replacement you've been looking for.", (err) => {       if(err) throw err;       console.log('Data has been replaced!');   }); } 

بعد التشغيل الناجح ، سوف يحتوي الملف على النص التالي:

 I'm the replacement you've been looking for. 

كما ترون ، يتم استبدال محتويات الملف بالكامل بمحتوى جديد.

قراءة الملف


لقراءة الملفات ، توفر الوحدة النمطية fs طريقة .readFile() ، مثال على الاستخدام الذي رأيناه بالفعل. يأخذ اسم الملف كمعلمة الأولى ، والترميز كما الثانية. المعلمة الثالثة هي وظيفة رد الاتصال. دعونا نحاول طباعة محتويات ملف testFile.txt إلى وحدة التحكم باستخدام هذه الطريقة:

 function fileHandler(){   fs.readFile('testFile.txt', 'utf8', (err, data) => {       if(err) throw err;       console.log('--------- [File Data] ---------');       console.log(data);       console.log('--------- [File Data] ---------');   }); } 

هذا ما نحصل عليه.


ملف إخراج البيانات إلى وحدة التحكم

الآن دعنا نتحدث عن إعادة تسمية الملفات.

إعادة تسمية الملف


لإعادة تسمية الملفات ، استخدم الأسلوب .rename() :

 function fileHandler(){   fs.rename('testFile.txt', 'newTestFile.txt', (err) => {       if(err) throw err;       console.log('File renamed successfully!');   }); } 

الوسيطة الأولى للطريقة هي اسم ملف موجود ، والثاني هو الاسم الجديد لهذا الملف. بعد استدعاء ناجح لهذه الطريقة ، يتحول ملف newTestFile.txt إلى newTestFile.txt .

حذف الملف


لحذف الملفات ، استخدم طريقة .unlink() :

 function fileHandler(){   fs.unlink('newTestFile.txt', (err) => {       if(err) throw err;       console.log('File deleted successfully!');   }); } 

استدعاء ناجحة إلى هذا الأسلوب يحذف ملف newTestFile.txt .

النتائج


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

أعزائي القراء! هل تستخدم الوحدة النمطية fs القياسية أو أي شيء آخر للتعامل مع الملفات الموجودة في Node.js؟

Source: https://habr.com/ru/post/ar452566/


All Articles