نود جی اس کارآیی فایل را با فراهم کردن بسته هایی درخصوص توابع پازیکس (POSIX) فراهم کرده است. میدانید که پازیکس یک رابط برنامه نویسی نرم افزار است که با استفاده از نرم افزارهای واسط و پوسته خط فرمان، تعامل میان یونیکس را با دیگر سیستمهای عامل ممکن می سازد. هدف از پازیکس آسان کردن وظایف گسترش نرم افزار های چندسکویی است که آن هم بوسیلهی مجموعهای از دستورالعمل هایی برای نویسندگان سیستم عاملها میسر میشود. به کمک پازیکس، یک توسعه دهنده، برنامه را یکباره برای همهی سیستم عاملها مینویسد.
در نود جی اس، بسته به الزامات کاربر، متدهای ورودی/خروجی فایل در دوحالت ناهمزمان و همزمان شکل میگیرند. بهمنظور استفاده از این قابلیتها بایستی به شکل زیر ماژول fs را با دستور require بکار بگیریم:
var fs = require('fs');
با این کار، اکنون قادرخواهیم بود به شرحی که در ادامه خواهید دید تمامی اعمال مدیریت فایلها را، شامل خواندن، نوشتن، افزودن به محتوای فایل و حذف فایل، به دوروش همزمان و ناهمزمان انجام دهید.
دو روش برای این کار وجود دارد:
//Reading a File Asynchronously using nodejs var fs=require('fs'); fs.readFile('message.txt', (err, data) => { if (err) throw err; console.log("Content : " + data); });
//Reading a File Synchronously using nodejs var fs = require('fs'); var filename = 'content.txt'; //Name of the file to be read var content = fs.readFileSync(filename); console.log('Content : ' + content);
این کار هم به دو روش امکان پذیر است:
۱. نوشتن در فایل به شیوه ناهمزمان:
//Writing a File Asynchronously using nodejs var fs = require('fs'); var content= "this is the content in the file"; fs.writeFile('message.txt', content , (err) => { if (err) throw err; console.log('It\'s saved!'); });
2. نوشتن در فایل به شیوه همزمان:
//Writing a File Synchronously using nodejs var fs = require('fs'); var content = "We are writing this file synchronously using node.js"; fs.writeFileSync('content.txt', content); console.log("File Written Successfully");
و باز هم مشاهده خواهیم کرد که این کار به دو روش امکان پذیر است:
۱. افزودن به فایل به شیوه ناهمزمان
//Appendig a File Asynchronously using nodejs var fs = require('fs'); new_data = "This data will be appended at the end of the file."; fs.appendFile('input.txt', new_data , (err) => { if(err) throw err; console.log('The new_content was appended successfully'); });
۲. افزودن به فایل به شیوه همزمان
//Synchronously file appending operation in nodejs var fs = require('fs'); var content = "We are Appending this file synchronously using node.js"; fs.appendFileSync('input.txt', content); console.log("File Appended Successfully");
همانند حالات قبل، این کار به دو روش امکان پذیر است:
۱. تغییر نام فایل به شیوه ناهمزمان
var fs = require('fs'); //باید آدرس نسبی فایل را نسبت به دایرکتوری کنونی بنویسید fs.rename('data.txt', 'new_data.txt', (err) => { if (err) throw err; console.log('File renamed successfully'); }); // برای وارسی طبیعت ناهمزمانی فایل! console.log("This method is Asynchronous");
2. تغییر نام فایل به شیوه همزمان
var fs = require('fs'); //باید آدرس نسبی فایل را نسبت به دایرکتوری کنونی بنویسید fs.renameSync('data.txt', 'newData.txt'); console.log('File renamed successfully'); // برای وارسی طبیعت همزمانی فایل! console.log("This method is Synchronous");
حذف فایل نیز همانند اعمال دیگر، به دو روش امکان پذیر است:
۱. حذف فایل به شیوه ناهمزمان
var fs = require('fs'); var filename = 'content.txt'; fs.unlink(filename, (err) => { if (err) throw err; console.log('File deleted successfully'); });
۲. حذف فایل به شیوه همزمان:
var fs = require('fs'); var filename = 'data.txt'; fs.unlinkSync(filename); console.log('File Deleted Successfully');
در پایان روز دوم، از سری آموزشهای نود جی اس، درسهایی درمورد کار با سیستم فایل فراگرفتیم و متوجه شدیم که همه عملیات اصلی سیستم فایل به دو شیوه همزمان و ناهمزمان انجام پذیر است:
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.