跟IO有關的官方套件
fs套件
fs套件提供讀取檔案系統的一些操作方式,而官方針對操作大多實作了有帶Sync跟沒帶Sync的兩個版本,其中有Sync的function都是屬於同步的操作方式,可以直接回傳值回來,而沒有Sync的function則是會有callback,在callback中接入回傳值,同時也帶入error訊息供判斷。
fs.readdirSync function提供同步的資料夾列表,回傳值為一個file的陣列
var fs = require('fs')
var files = fs.readdirSync('.');
for ( i in files ) {
console.log(files[i]);
}
fs.readdirSync為同步讀取目錄之方法,使用指令列接入參數的方式(process.argv)來動態帶入dir的位置
var fs = require('fs');
var dir = '.';
if ( process.argv[2] ) dir = process.argv[2];
var files = fs.readdirSync(dir);
for (i in files) {
console.log(files[i]);
}
fs.readFileSync function提供一個同步讀取檔案的操作,回傳值為該檔案的內文
var fs = require('fs');
var fileName='/etc/hosts';
var text = fs.readFileSync(fileName, "utf8");
console.log(text);
fs.unlinkSync為刪除檔案的同步操作,對應的非同步操作為fs.unlink
var fs = require('fs');
fs.unlinkSync('/tmp/hello')
console.log('successfully deleted /tmp/hello');
如果是使用沒帶Sync的function,則需要實作callback function來達到操作回傳的內容物件,範例如下:
承上讀取檔案之同步操作,fs.readFile function提供一個非同步讀取檔案的操作,callback中回傳值為該檔案的內文
var fs = require('fs');
var fileName='/etc/hosts';
fs.readFile(fileName, "utf8", function(err, data){
if(err) console.log(err);
console.log(data);
});
另一個好用的function是fs.stat,可以用來檢測某個路徑下的檔案狀態或是資料匣的狀態
var fs = require('fs');
var path='/etc/hosts';
//建立stat物件
var s = fs.statSync(path);
//另一種建立方式:process.binding('fs').stat(path);
//檢視stat物件內容
console.log(s);