※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已經是迴圈了,直接將抓到的值做處理
沒有留言:
張貼留言