首页 > 解决方案 > 替换整行 Node.js

问题描述

我想读取一个文本文件,然后如果找到用户的 id,则从文本文件中删除一整行,然后重新保存文本文件。

澄清文本文件中的每一行如下所示(但没有项目符号)

所以我在下面做了以下代码。

client.on('guildMemberRemove',(member) => {
    var text = fs.readFileSync("textfile.txt", "utf8");
    text.split('\n').filter(function(line){ 
    return line.indexOf( member.id ) == -1;
    }).join('\n')
fs.writeFile("emails.txt", text, () => {});
console.log("Working");
});

但是,带有 id 的行似乎没有被删除。谁能解释为什么?

标签: javascriptnode.jsreplacefs

解决方案


您需要保存操作的结果,因为每次您都在创建一个新字符串。

var text = fs.readFileSync("textfile.txt", "utf8");
text = text.split('\n').filter(function(line){ 
  return line.indexOf( member.id ) == -1;
}).join('\n')

其余代码可以保持不变。


推荐阅读