خواندن فایل در Node.js با استفاده از ماژول‌های داخلی !!!


برای خواندن فایل در Node.js با استفاده از ماژولهای داخلی، دو روش متداول وجود دارد:

1. استفاده از ماژول fs:

این ماژول، توابع مختلفی برای کار با فایلها در Node.js ارائه میدهد. برای خواندن یک فایل، میتوانید از تابع fs.readFile استفاده کنید.

مثال:


const fs = require('fs');

// خواندن فایل به صورت همزمان
fs.readFile('my-file.txt', 'utf8', (err, data) => {
 if (err) throw err;
 console.log(data);
});

// خواندن فایل به صورت غیرهمزمان
const data = fs.readFileSync('my-file.txt', 'utf8');
console.log(data);

نکات:

  • در مثال بالا، my-file.txt نام فایلی است که میخواهید بخوانید.
  • و utf8 نوع رمزگذاری فایلی است که میخواهید بخوانید.
  • اگر فایلی که میخواهید بخوانید به صورت رمزگذاری دیگری باشد، باید نوع رمزگذاری را به درستی مشخص کنید.
  • در روش همزمان، تابع fs.readFile تا زمانی که خواندن فایل به پایان نرسد، اجرا را متوقف میکند.
  • در روش غیرهمزمان، تابع fs.readFile بلافاصله بعد از فراخوانی، اجرا را ادامه میدهد و نتیجه خواندن فایل را در متغیر data ذخیره میکند.

2. استفاده از ماژول stream:

این ماژول، امکان خواندن فایلها به صورت قطعهای را فراهم میکند. این روش برای خواندن فایلهای بزرگ مفید است.

مثال:


const fs = require('fs');
const stream = fs.createReadStream('my-file.txt');

stream.on('data', (chunk) => {
 console.log(chunk);
});

stream.on('end', () => {
 console.log('فایل به طور کامل خوانده شد.');
});

نکات:

  • در مثال بالا، my-file.txt نام فایلی است که میخواهید بخوانید.
  • و stream یک شیء از نوع ReadableStream است که به شما امکان میدهد فایل را به صورت قطعهای بخوانید.
  • رویداد data هر بار که یک قطعه جدید از دادهها خوانده میشود، فعال میشود.
  • رویداد end زمانی که خواندن فایل به پایان میرسد، فعال میشود.

مقایسه دو روش:

برای روش fs.readFile():

  • مزایا: سادگی و راحتی در استفاده، بخصوص برای فایلهای کوچک، و استفاده از رابط کاربری بالا.
  • معایب: در صورتی که فایل بسیار بزرگ باشد، این روش ممکن است به دلیل نگهداشتن کل فایل در حافظه، باعث افزایش مصرف حافظه شود و باعث ایجاد مشکلات کارایی شود.

برای روش stream:

  • مزایا: کارایی بالا و بهینهتر برای خواندن فایلهای بزرگ، امکان پردازش قطعههای دادهای به صورت همزمان با خواندن آنها، کاهش مصرف حافظه، و امکان انتقال دادهها به دیگر دستگاهها (به صورت streaming) به عنوان ویژگیهای اصلی.
  • معایب: پیادهسازی کدی برای استفاده از stream ممکن است پیچیدهتر از استفاده از fs.readFile() باشد.

انتخاب روش مناسب:

روش مناسب برای خواندن فایل در Node.js به نیاز شما بستگی دارد. اگر میخواهید یک فایل کوچک را بخوانید، میتوانید از روش fs.readFile استفاده کنید. اگر میخواهید یک فایل بزرگ را بخوانید، میتوانید از روش stream استفاده کنید.

منابع:

Node.js fs module: https://nodejs.org/api/fs.html

Node.js stream module: https://nodejs.org/api/stream.html

نکته:

به یاد داشته باشید که قبل از استفاده از ماژولهای fs و stream، باید آنها را با استفاده از دستور require در برنامه خود بارگیری کنید.

مثال:

const fs = require('fs');
const stream = require('stream');

------------------------------------------------------------------------------------------------------------

این یکی از صدها مطلب و نکاتی هستش که ما توی چنل تلگراممون قرار میدیم. ما اونجا حتی یه گروهم داریم که نزدیک به 1000 نفر عضو داره و هر سوالی در رابطه با جاوااسکریپت و ریکت و بک اند و ... داشته باشید اعضای گروه کمکتون میکنن

ضمنا دوبله ی بهترین دوره جاوااسکریپت جهان رو هم داخلش قرار دادیم کاملا رایگان ✌️

یه سر بهمون بزن ❤️

https://t.me/DeepDevs

نویسنده این مقاله کوتاه :

https://www.linkedin.com/in/amir-nobari1990/

https://github.com/amirnobari