久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      快速帶你入門Nodejs的文件操作和stream(流)

      本篇文章給大家介紹一下Nodejs中的文件操作(創(chuàng)建和刪除目錄/文件、重命名、追加內(nèi)容、讀取內(nèi)容),以及簡單聊聊stream(流)。

      快速帶你入門Nodejs的文件操作和stream(流)

      NodeJS文件操作

      • NodeJS除了在網(wǎng)絡方面大放異彩,它還可以對文件進行操作,按邏輯上來說只要我們合理運用這些api再加上一些數(shù)據(jù)處理,我們就可以完成本地很多的操作?!就扑]學習:《nodejs 教程》】
      • 在上一篇我們知道如果想引用一個模塊則需要使用到require,而今天要介紹的主角是fs模塊,也就是NodeJS內(nèi)置的一個文件模塊,這個模塊有很多的API供我們使用。

      創(chuàng)建目錄和文件

      • 我們可以使用fs.mkdir fs.writeFile來分別創(chuàng)建目錄和文件。
      • mkdir()可以接收三個參數(shù),第一個是路徑,第二個是個可選項代表權限,這個我們一般不需要,第三個參數(shù)是一個回調(diào)函數(shù),我們可以在這里面做一些處理。
      /* learnNode.js */ let fs = require('fs'); fs.mkdir('js',(err)=>{   if(err){     console.log('出錯')   }else{     console.log('未出錯')   } })
      • writeFile()可以接收四個參數(shù),第一個是路徑,第二個是文件內(nèi)容,第三個可選項代表權限,第四個是回調(diào)函數(shù)。
      /* learnNode.js */ let fs = require('fs'); fs.writeFile('./js/newJs.js','console.log("寫入這個")',(err)=>{   if(err){     console.log('出錯')   }else{     console.log('沒出錯')   } })

      快速帶你入門Nodejs的文件操作和stream(流)

      • 可以看到我們成功創(chuàng)建了目錄并寫入了一個文件。

      檢測文件

      • 我們可以通過fs.stat來檢測一個路徑的文件是為目錄還是文件,進而可以做一些操作。
      /* learnNode.js */ let fs = require('fs'); fs.stat('./js/newJs.js', (error, stats) => {   if(error) {     console.log(error);     return false;   } else {     console.log(`是否文件:${stats.isFile()}`);      console.log(`是否目錄:${stats.isDirectory()}`);      return false;   } })
      • star()主要接收兩個參數(shù)第一個是要檢測的文件,第二個是一個回調(diào)函數(shù),這個回調(diào)函數(shù)有兩個參數(shù),分別是err錯誤和stats對象,這個對象提供有關文件的信息,我們可以對這個對象信息來進行判斷。

      快速帶你入門Nodejs的文件操作和stream(流)

      刪除文件和刪除目錄

      • 既然我們可以使用NodeJS創(chuàng)建文件那當然我們也可以刪除文件,主要使用的是fs.unlink``fs.rmdir這兩個API
      /* learnNode.js */ let fs = require('fs'); fs.unlink('./js/newJs.js', (err) => {   if (err) throw err;   console.log('文件已刪除'); }); fs.rmdir('./js',(err)=>{   if (err) throw err;   console.log('目錄已刪除'); })
      • 這兩個API都分別接收兩個參數(shù)是路徑和回調(diào)函數(shù),執(zhí)行node learnNode.js可以看到我們文件已經(jīng)成功刪除。

      快速帶你入門Nodejs的文件操作和stream(流)

      重命名

      • 我們可以使用fs.rename來對文件重命名。
      /* learnNode.js */ let fs = require('fs'); fs.rename('oldJs.js','newJs.js',(err)=>{   if(err){     console.log('出錯')   }else{     console.log('未出錯')   } })
      • rename()可以接收三個參數(shù)第一個是路徑第二個是更改的名稱,第三個是回調(diào)函數(shù),值得注意的是,如果第一個參數(shù)和第二個參數(shù)對應的文件所在的位置不一樣時,他不會重命名之前那個文件而是直接把文件剪切放到另一個地方。
      /* learnNode.js */ let fs = require('fs'); fs.rename('newJs.js','./js/oldJs.js',(err)=>{   if(err){     console.log('出錯')   }else{     console.log('剪切到js文件夾內(nèi)了')   } })

      追加內(nèi)容

      • 上面我們說到創(chuàng)建文件的時候可以順便寫入東西,那么我們可不可以直接在文件追加文字呢?我們可以使用fs.appendFile。
      /* learnNode.js */ let fs = require('fs'); fs.appendFile('newJs.txt','我是追加的內(nèi)容',(err)=>{   if(err){     console.log('出錯')   }else{     console.log('追加內(nèi)容')   } })
      • appendFile()可以接收三個參數(shù),第一個是路徑,第二個是內(nèi)容,第三個是回調(diào)函數(shù),執(zhí)行node learnNode.js即可。

      快速帶你入門Nodejs的文件操作和stream(流)

      讀取文件和讀取目錄

      • 以上都是對文件進行增刪改的操作,我們現(xiàn)在還需要掌握一下讀取內(nèi)容,我們可以使用fs.readFilefs.readdir分別讀取文件和讀取目錄。
      /* learnNode.js */ let fs = require('fs'); fs.readFile('newJs.txt', (err, data) => {   if(err) {     console.log('出錯');   } else {     console.log("讀取文件成功!");     console.log(data);   } })

      快速帶你入門Nodejs的文件操作和stream(流)

      /* learnNode.js */ let fs = require('fs'); fs.readdir('./', (err, data) => {   if(err) {     console.log('出錯');   } else {     console.log("讀取目錄成功!");     console.log(data);   } })

      快速帶你入門Nodejs的文件操作和stream(流)

      • 可以看到我們兩個API都是接收兩個參數(shù),第一個是路徑,第二個是回調(diào)函數(shù),這個回調(diào)函數(shù)也有兩個參數(shù)里面包含了data信息,我們可以打印這個data信息來獲取內(nèi)容。

      stream(流)

      • 最后我們來簡單聊聊stream,翻譯過來就是的意思,提到流你會想到什么,河流,水流,都是從一個源頭到另一個源頭,就像水龍頭從開關到流到地面,stream也是這樣一個過程。
      • Stream 有四種流類型:
        • Readable – 可讀操作。
        • Writable – 可寫操作。
        • Duplex – 可讀可寫操作.
        • Transform – 操作被寫入數(shù)據(jù),然后讀出結(jié)果。
      • 在stream的過程中,我們也有事件可以使用,比如檢測到錯誤觸發(fā)的error,有數(shù)據(jù)時觸發(fā)的data。
        • data – 當有數(shù)據(jù)可讀時觸發(fā)。
        • end – 沒有
      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號