Node.js 模組(三)

數學計算  Mathematics

模組  Math.js

JavaScript 和 Node.js 內建原生的數學計算方法,只有基本功能而已,如果想要有更有複雜的數學方法解決方案,可以考慮使用Math.js。Math.js提供非常多的數學方法,而且提供更彈性化的運算操作。

npm install mathjs

檔案系統  File system      fs

Node.js內建一個fs核心模組供開發人員進行檔案I/O的操作

var fs = require('fs');

非同步方法讀取目錄檔案清單

var fs = require('fs');

fs.readdir('../exercise', function(err, files) {

if (err) {
console.log(err);
return;
}
for (var index in files) {
console.log(files[index]);
}
});

檢查檔案是否存在

var fs = require('fs');

fs.exists('/tmp', function (exists) {
//印出結果,如果存在為true,如果失敗為false
console.log(exists);
});

刪除檔案

var fs = require('fs');

fs.unlink('/tmp/test', function(err) {
//如果有錯誤發生
if(err) {
console.log(err);
return;
}
console.log('Removed');
});

刪除目錄

rmdir()
即可刪除一個指定檔案,但是這只能刪除一個空的目錄,如果我們想刪除的是一個有許多檔案的目錄,就必須先遍歷整個目錄,將其中所有的檔案一層層清空最後再進行目錄刪除。

解決這個問題我們可以用fs-extra模組
npm install fs-extra

變更檔案名稱

var fs = require('fs');

fs.rename('/tmp/test', '/tmp/test.new', function (err) {
if(err) {
console.log(err);
return;
}
console.log('Renamed');
});

非同步讀取檔案內容

var fs = require('fs');

fs.readFile('./readfile.js', function(err, data) {
if (err) {
console.log(err);
return;
}
console.log(data.toString());
});

以資料流形式讀取檔案

Node.js本身有良好的資料流(Steam)支援,使用資料流可以很有效率的處理I/O的資料,然後我們就像水龍頭接水一樣,接者從水管流出的資料,然後再進行處理。
Node.js的fs核心模組有提供一個createReadStream()方法

var fs = require('fs');

var stream = fs.createReadSrteam('/readfile-stream.js');

stream.on('data', function(data) {
console.log(data.toString());
});

非同步寫入檔案內容

var fs = require('fs');

fs.writeFile('./writefile.txt', 'Hello World', function(err) {
if (err) {
console.log(err);
return;
}
console.log('Wrote');
});

以資料流形式寫入檔案

var fs = require('fs');

var stream = fs.createWriteStream('./writefile-stream.txt');
stream.write('Hello World');

附加資料到檔案內容結尾

var fs = require('fs');

fs.appendFile('./appendfile.txt', 'Hello World', function (err){
if (err) {
console.log(err);
return;
}
console.log('Appended');
});

搬移檔案

搬移檔案或複製檔案,就是在指定的路徑上建立一個新的空白檔案,然後把被複製的檔案內容,複製寫入到這個新的空白檔案之中,這只是運用到前面的讀取、寫入的技巧和功能。

原生的fs沒有完整的功能,我們可以用第三方模組 fs-extra來完成這個工作。

npm install fs-extra

var fse = require('fs-extra');
fse.move('./tmp/src.txt', './tmp/dest.txt', function(err) {
if (err) {
console.log(err);
return;
}
console.log('Move');
});

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料