
آموزش Nodejs قسمت سوم
File System
برای کار با فایل ها ماژولی در NodeJS به نام fs وجود دارد. برای استفاده از متدها و ویژگی های این ماژول باید آنرا با استفاده از دستور require() به برنامه اضافه کنید
var fs = require('fs');
از ماژول fs میتوان برای کارهایی مانند خواندن فایل ها، ایجاد فایل ها، ویرایش فایل ها، حذف فایل ها و تغییر نام فایل ها استفاده کرد.
خواندن فایل
متد fs.readFile() برای خواندن محتویات فایل استفاده میشود.
متد readFile میتواند سه آرگومان دریافت کند تنها یکی از آنها اجباریست
fs.readFile(file, [encoding], [callback]);
آرگومان اول که اجباری نیز است نام فایلی است که باید خوانده شود.
آرگومان دوم و اختیاری، نوع encode فایلی که باید خوانده شود را مشخص میکند مثلا utf8
آرگومان سوم و اختیاری، یک تابع است که زمانی که عملیات خواندن فایل به اتمام رسید اجرا میشود
برای مشاهده نحوه کار این متد فایل html ی به نام demofile1.html در محل فایل های NodeJS خود ایجاد کنید و محتوای زیر را در آن قرار دهید.
<html>
<body>
<h1>My Header</h1>
<p>My paragraph.</p>
</body>
</html>
حالا نوبت به ایجاد فایل NodeJSی میرسد که باید فایل demofile1.html را بخواند. برای این منظور فایلی به نام demo_readfile.js را ایجاد کنید و محتوای زیر را در آن قرار دهید
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.readFile('demofile1.html', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}).listen(8080);
اکنون اگر demo_readfile.js را از خط فرمان اجرا نمایید خواهید دید که محتوای فایل demofile1.html را نمایش میدهد.
به مرورگر رفته و آدرس http://localhost:8080 را وارد نمایید تا خروجی زیر را مشاهده کنید
My Header
My paragraph.
ایجاد فایل
همانطور که قبلا هم گفته شد ماژول fs توانایی ایجاد فایل را نیز دارد که برای اینکار سه متد دارد
- fs.appendFile()
- fs.open()
- fs.writeFile()
هرکدام از این سه متد را در ادامه توضیح خواهم داد.
متد appendFile() محتوایی را به انتهای فایل اضافه میکند و اگر فایل وجود نداشته باشد آنرا ایجاد میکند.
برای ایجاد یک فایل با استفاده از این متد بشکل زیر عمل میکنیم.
var fs = require('fs');
fs.appendFile('mynewfile1.txt', 'Hello content!', function (err) {
if (err) throw err;
console.log('Saved!');
});
آرگومان اول نام فایلی است که میخواهیم محتوایی را به آن اضافه کنیم و همانطور که گفتیم اگر وجود نداشته باشد فایل ایجاد میشود.
آرگومان دوم محتوایی است که باید به فایل معرفی شده در آرگومان اول اضافه شود.
آزگومان سوم تابعی است که در پایان عملیات اجرا میشود که در اینجا این تابع چک میکند اگر خطایی رخ داده باشد خطا را اعلام کرده و گرنه پیغام Save را چاپ میکند.
متد open سه آرگومان میپذیرد
fs.open(path, flags[, mode], callback)
آرگومان اول مسیر و نام فایلی است که میخواهیم عملیات را روی آن انجام دهیم
آگومان دوم یک کد است که مشخص میکند چه عملیاتی را میخواهیم انجام دهیم. مثلا w به معنی انجام عملیات نوشتن در فایل می باشد
آرگومان سوم تابعی است که بعداز انجام عملیات اجرا خواهد شد
مثال زیر فایل mynewfile2 را برای انجام عملیات نوشتن در فایل باز میکند
var fs = require('fs');
fs.open('mynewfile2.txt', 'w', function (err, file) {
if (err) throw err;
console.log('Saved!');
});
کدهایی که میتوان به عنوان پارامتر دوم در متد open استفاده کرد را میتوانید در زیر مشاهده کنید
r فایل برای خواندن باز میشود و اگر فایل وجود نداشته باشد خطا رخ میدهد
r+ فایل برای خواندن و نوشتن باز میشود و فایل اگر وجود نداشته باشد خطا رخ میدهد
rs فایل برای خواندن در حالت همگام synchronous باز میکند
rs+ فایل را برای خواندن و نوشتن باز میکند و از سیستم عامل برای همگام بودن آن سوال میپرسد
w فایل را برای نوشتن باز میکند واگر وجود نداشته باشد آنرا ایجاد میکند
wx فایل را برای نوشتن باز میکند واگر وجود داشته باشد خطا ایجاد میکند
w+ فایل را برای خواندن و نوشتن باز میکند واگر وجود نداشته باشد آنرا ایجاد میکند
wx+ فایل را برای نوشتن باز میکند واگر وجود نداشته باشد خطا میدهد
a فایل را برای افزودن محتوا به انتهای آن باز میکند و اگر وجود نداشته باشدآنرا ایجاد میکند
ax فایل را برای افزودن محتوا به انتهای آن باز میکند و اگر وجود نداشته باشد خطا ایجاد میکند
a+ فایل را برای خواندن و افزودن محتوا به انتهای آن باز میکند و اگر وجود نداشته باشدآنرا ایجاد میکند
ax+ فایل را برای افزودن محتوا به انتهای آن باز میکند و اگر وجود نداشته باشد خطا ایجاد میکند
متد writeFile
متد writeFile برای نوشتن محتوا را در یک فایل استفاده میشود اگر فایل وجود نداشته باشد آنرا ایجاد میکند
پارامتر اول نام و مسیر فایل
پارامتر دوم محتوایی که قرار است قرار است در فایل نوشته شود
پارامتر سوم تابعی است که بعد از انجام عملیات اجرا میشود.
مثال زیر محتوای hello content را در فایل mynewfile3 مینویسد
var fs = require('fs');
fs.writeFile('mynewfile3.txt', 'Hello content!', function (err) {
if (err) throw err;
console.log('Saved!');
});
حذف فایل ها
برای حذف یک فایل با استفاده از ماژول فایل سیستم از متد fs.unlink استفاده میکنیم.
برای مثال کد زیر باعث حذف فایل mynewfile2.txt میشود.
var fs = require('fs');
fs.unlink('mynewfile2.txt', function (err) {
if (err) throw err;
console.log('File deleted!');
});
نکته: درصورتیکه فایل وجود نداشته باشد خطا رخ خواهد داد.
تغییرنام فایل ها
برای تغییر نام فایل ها با استفاده از ماژول فایل سیستم ازمتد fs.rename استفاده میکنیم.
با استفاده از کد زیر نام فایل mynewfile1.txt به myrenamedfile.txt تغییر میدهیم
var fs = require('fs');
fs.rename('mynewfile1.txt', 'myrenamedfile.txt', function (err) {
if (err) throw err;
console.log('File Renamed!');
});
دیدگاه کاربران