簡體   English   中英

從文件中刪除行而不更改節點js中的buffer變量

[英]Remove line from file without mutating the buffer variable in node js

我是Nodejs的新手

我編寫了一個函數,該函數從文件讀取內容並將其存儲為數組形式的變量。 最后,我將變量變異並將其寫入文件。 見下文:

function(file, item) {
   return fs.readLine(file).then(function(contents) {
       var data = contents.split(/\n/);
       data.splice(data.indexOf(item), 1);
       return fs.writeFile(file, data.join(/\n/));
});
}

有沒有一種方法可以做到這一點而無需更改變量,甚至不必將文件內容存儲到變量中並在節點js中將其刪除?

謝謝

如果您不想使用data.splice()對變量進行變異,則可以使用不會對原始數組進行變異的data.slice() 參見文檔:

另外,您可以創建可讀的流並過濾掉不需要的行,而不是將文件的內容讀入變量。

查看我如何創建filt標准輸入行的filt模塊:

源代碼和許多示例在GitHub上:

基本上,您可以在這里執行以下操作-使用方便的split模塊-如下所示:

fs.createReadStream(file).pipe(split()).on('data', (line) => {
    // if line is something ... etc.
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM