久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

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

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

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

      NodeJS文件操作

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

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

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

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

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

      檢測(cè)文件

      • 我們可以通過fs.stat來檢測(cè)一個(gè)路徑的文件是為目錄還是文件,進(jìn)而可以做一些操作。
      /* 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()主要接收兩個(gè)參數(shù)第一個(gè)是要檢測(cè)的文件,第二個(gè)是一個(gè)回調(diào)函數(shù),這個(gè)回調(diào)函數(shù)有兩個(gè)參數(shù),分別是err錯(cuò)誤和stats對(duì)象,這個(gè)對(duì)象提供有關(guān)文件的信息,我們可以對(duì)這個(gè)對(duì)象信息來進(jìn)行判斷。

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

      刪除文件和刪除目錄

      • 既然我們可以使用NodeJS創(chuàng)建文件那當(dāng)然我們也可以刪除文件,主要使用的是fs.unlink``fs.rmdir這兩個(gè)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('目錄已刪除'); })
      • 這兩個(gè)API都分別接收兩個(gè)參數(shù)是路徑和回調(diào)函數(shù),執(zhí)行node learnNode.js可以看到我們文件已經(jīng)成功刪除。

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

      重命名

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

      追加內(nèi)容

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

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

      讀取文件和讀取目錄

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

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

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

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

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

      stream(流)

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