NodeJs簡明教程將從零開始學習NodeJs相關知識,助力JS開發者構建全棧開發技術棧!node
本文是NodeJs簡明教程的第四篇,將介紹NodeJs文件系統模塊相關的基本操做。服務器
fs 模塊提供了一個 API,用於以模仿標準 POSIX 函數的方式與文件系統進行交互。異步
文件系統的大部分函數都存在 異步調用 和 同步調用 兩種形式。函數
異步模式下,回調函數的第一個參數總爲 Error 對象,且函數通常無返回值。學習
新建 index.js
文件:ui
const fs = require('fs');
fs.readFile('./index.js', { encoding: 'utf8' }, (err, data) => {
if (err) {
console.error('讀取文件失敗', err);
return;
}
console.log(data);
})
複製代碼
readFile
的第二個參數若是不指定編碼,回調函數取到的data
對象是Buffer
,須要手動轉字符串。讀取文本文件能夠指定編碼,可是讀取二進制文件(好比讀取圖片文件
)編碼
在當前目錄執行 node index.js
spa
輸出以下:code
const fs = require('fs');
fs.readFile('./index.js', { encoding: 'utf8' }, (err, data) => {
if (err) {
console.error('讀取文件失敗', err);
return;
}
console.log(data);
})
複製代碼
同步模式下,返回值爲調用函數的結果,若是調用失敗,將拋出Error對象:cdn
const fs = require('fs');
try {
const data = fs.readFileSync('./index.js', { encoding: 'utf8' });
console.log(data);
} catch (e) {
console.log('讀取失敗', e)
}
複製代碼
輸出數據和同步模式一致。
能夠看到同步模式和異步模式下處理錯誤的方式是不一樣的。
各位讀者在生產中儘可能不要使用同步函數,不然會阻塞事件循環。 固然,有一種狀況例外,須要同步讀取配置文件而後才啓動服務器的這種狀況是能夠的。
新建index.js
,代碼以下:
const fs = require('fs');
const data = 'Hello World';
fs.writeFile('./a.txt', data, (error) => {
if (error) {
console.error('保存失敗', error);
return;
}
console.log('保存成功');
})
複製代碼
node index.js
保存成功
,同時當前目錄會多出內容爲Hello World
的文本文件。fs.copyFile(src,dest[,flags],callback)
複製文件fs.stat(path[,options],callback)
讀取文件狀態fs.unlink(path,callback)
刪除文件fs.rename(oldPath,newPath,callback)
重命名文件fs.mkdir(path[,options],callback)
新建目錄fs.rmdir(path,callback)
刪除目錄文件系統的學習暫時到此爲止,用到的時候你們能夠詳細查看文件,文件系統的函數調用方式和本文的示例都是相似的,各位讀者能夠觸類旁通。
歡迎關注Nodejs之路
公衆號得到持續更新以及在線答疑幫助。