آموزش مقدماتی NodeJS | کار با فایلها
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
خواندن فایلها
در Node.js میتوانیم فایلها را به دو روش اصلی بخوانیم: روش همگام (Synchronous) و روش ناهمگام (Asynchronous). برای کار با فایلها، از ماژول داخلی به نام fs استفاده میکنیم که مخفف File System است. برای استفاده از آن کافی است در ابتدای کد بنویسیم:
const fs = require('fs');
روش اول: خواندن همگام فایل با readFileSync
در این روش، اجرای برنامه تا زمانی که خواندن فایل کامل نشود متوقف میماند. این روش ساده است اما برای فایلهای بزرگ یا برنامههای واقعی توصیه نمیشود، چون باعث کندی برنامه میشود.
const fs = require('fs');
const data = fs.readFileSync('example.txt', 'utf8');
console.log(data);
در اینجا:
- آرگومان اول نام فایل است.
- آرگومان دوم
'utf8'مشخص میکند که محتوای فایل به صورت متن خوانده شود. اگر این را ننویسیم، خروجی به صورت Buffer نمایش داده میشود. - خروجی مستقیماً در متغیر
dataذخیره میشود.
روش دوم: خواندن ناهمگام فایل با readFile
در این روش، Node.js فایل را در پسزمینه میخواند و برنامه متوقف نمیشود. وقتی خواندن تمام شد، یک تابع callback اجرا میشود. این روش برای برنامههای واقعی مناسبتر است.
const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error('خطا در خواندن فایل:', err);
return;
}
console.log(data);
});
در اینجا:
- آرگومان سوم یک تابع callback است که دو پارامتر دارد:
errبرای خطا وdataبرای محتوای فایل. - اگر خطایی رخ دهد،
errمقدار دارد و باید آن را مدیریت کنیم. - اگر خطایی نباشد،
errمقدارnullدارد وdataشامل محتوای فایل است.
روش سوم: خواندن فایل با Promise (روش مدرن)
میتوانیم از نسخه Promise-based ماژول fs استفاده کنیم که کد را تمیزتر میکند:
const fs = require('fs').promises;
async function readMyFile() {
try {
const data = await fs.readFile('example.txt', 'utf8');
console.log(data);
} catch (err) {
console.error('خطا در خواندن فایل:', err);
}
}
readMyFile();
در این روش از async/await استفاده میکنیم که خوانایی کد را بالا میبرد و مدیریت خطا با try/catch سادهتر میشود.
نکات مهم:
- اگر فایل مورد نظر وجود نداشته باشد، خطا دریافت میکنیم. در روش همگام این خطا برنامه را متوقف میکند، اما در روشهای ناهمگام میتوانیم آن را مدیریت کنیم.
- همیشه بهتر است مسیر فایل را دقیق مشخص کنید، مثلاً
./files/example.txtتا مطمئن شوید Node.js فایل را در مسیر درست جستجو میکند. - برای پروژههای واقعی، روش Promise-based یا ناهمگام توصیه میشود.
برای ثبت پرسش ابتدا در سایت وارد شوید.