
數學計算 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');
});