※OS
取得作業系統資訊官網連結
const os = require('os');
console.log('EOL=' + os.EOL);
console.log('arch=' + os.arch());
console.log('endianness=' + os.endianness());
console.log('freemem=' + os.freemem());
console.log('homedir=' + os.homedir());
console.log('hostname=' + os.hostname());
console.log('loadavg=' + os.loadavg());
console.log('networkInterfaces=' + os.networkInterfaces());
console.log('platform=' + os.platform());
console.log('release=' + os.release());
console.log('tmpdir=' + os.tmpdir());
console.log('totalmem=' + os.totalmem());
console.log('type=' + os.type());
console.log('uptime=' + os.uptime() + '\r\n');
// 取得所有屬性
for(var i in os.cpus()){
console.log(os.cpus()[i]);
}
/*
上面的for in和下面的for of一樣,比較少人用,差在console.log裡面可少打一點
這個例子的結果是一樣的,但如果是陣列,for of只會抓初始值
for(var i of os.cpus()){
console.log(i);
}
*/
console.log('\r\n');
// 知道有什麼屬性後,可以取得個別屬性
for(var j=0; j<os.cpus().length; j++){
console.log(os.cpus()[j].model);
console.log(os.cpus()[j].speed);
console.log(os.cpus()[j].times.user);
console.log(os.cpus()[j].times.sys + '\r\n');
}
※cpus是抓全部的CPU,像我有兩顆
※File System
檔案系統操作,分成同步和非同步,同步不會有最後的Callback參數,可以使用try/catch處理官網連結
※unlink
非同步的刪除檔案const fs = require('fs');
var path = 'C:\\fsTest.txt';
fs.unlink(path, (err) => {
if (err) throw err;
console.log('err=' + err);
console.log('刪除' + path + '成功');
});
console.log('xxx');
※unlinkSync
同步的刪除檔案const fs = require('fs');
var path = 'C:\\fsTest.txt';
fs.unlinkSync(path);
console.log('刪除' + path + '成功');
console.log('xxx');
※如果有錯誤訊息是權限不夠,就要用有權限的來執行
※注意xxx的執行時機,圖第一個執行的是同步,第二個執行的是非同步
※其他如rename、rmdir、mkdir、readFile、writeFile、appendFile…等,都有分同步/非同步,用法都差不多
※寫檔
const fs = require('fs');
// 準備好要寫的資料
var content = '';
content += '1, 2, 3, 4, 5 \r\n';
content += 'a, b, c, d, e \r\n';
// 已經有目錄不會報錯,目錄內的檔案也不會增加或減少
var path = '.\\123';
fs.mkdir(path, ()=>{});
// 再執行一次會覆蓋原有的內容
fs.writeFile(path + '\\data.txt', content, 'utf8', (err) => {
if (err) throw err;
console.log('已存檔!');
});
※增加內容到檔案的最後面
const fs = require('fs');
// 準備好要寫的資料
var content = '';
content += '0, 9, 8, 7, 6 \r\n';
content += 'z, y, x, w, v \r\n';
var path = '.\\123';
fs.mkdir(path, ()=>{});
// 沒有檔案也會創建新檔案喔!
fs.appendFile(path + '\\data.txt', content, 'utf8', (err) => {
if (err) throw err;
console.log('已存檔!');
});
※讀檔
※準備一個檔案,內容如下:
1, 2, 3, 4, 5 a, b, c, d, e 0, 9, 8, 7, 6 z, y, x, w, v
const fs = require('fs');
fs.readFile('D:\\123\\data.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
※很簡單就將內容全部都讀出來了,但如果只想一次讀一行要看下面的Readline
※Readline
官網連結const readline = require('readline');
const fs = require('fs');
const rl = readline.createInterface({
input: fs.createReadStream('D:\\123\\data.txt')
});
rl.on('line', (xxx) => {
console.log(xxx);
var split = xxx.trim().split(',');
for(l in split){
console.log(l.trim());
// split.forEach(ooo);
}
});
function ooo(value, index, ar){
console.log(value.trim());// 值
console.log(index);// 就是index
console.log(ar); // 整個陣列
}
※on裡面的字,一定要叫line
※Callback已經是迴圈了,直接將抓到的值做處理


沒有留言:
張貼留言