跟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);

results matching ""

    No results matching ""