NodeJs簡明教程(4)

NodeJs簡明教程將從零開始學習NodeJs相關知識,助力JS開發者構建全棧開發技術棧!node

本文是NodeJs簡明教程的第四篇,將介紹NodeJs文件系統模塊相關的基本操做。服務器

fs 模塊提供了一個 API,用於以模仿標準 POSIX 函數的方式與文件系統進行交互。異步

讀取文件

文件系統的大部分函數都存在 異步調用同步調用 兩種形式。函數

異步

異步模式下,回調函數的第一個參數總爲 Error 對象,且函數通常無返回值。學習

  1. 若是爲null,則本次調用未出錯
  2. 若是不爲null,證實本次調用出錯

新建 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,須要手動轉字符串。讀取文本文件能夠指定編碼,可是讀取二進制文件(好比讀取圖片文件)編碼

  1. 在當前目錄執行 node index.jsspa

  2. 輸出以下: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('保存成功');
})
複製代碼
  1. 執行node index.js
  2. 輸出保存成功,同時當前目錄會多出內容爲Hello World的文本文件。

經常使用API

  1. fs.copyFile(src,dest[,flags],callback) 複製文件
  2. fs.stat(path[,options],callback) 讀取文件狀態
  3. fs.unlink(path,callback) 刪除文件
  4. fs.rename(oldPath,newPath,callback) 重命名文件
  5. fs.mkdir(path[,options],callback) 新建目錄
  6. fs.rmdir(path,callback) 刪除目錄

結語

文件系統的學習暫時到此爲止,用到的時候你們能夠詳細查看文件,文件系統的函數調用方式和本文的示例都是相似的,各位讀者能夠觸類旁通。

歡迎關注Nodejs之路公衆號得到持續更新以及在線答疑幫助。

二維碼
相關文章
相關標籤/搜索