javascript - 替换整行 Node.js
问题描述
我想读取一个文本文件,然后如果找到用户的 id,则从文本文件中删除一整行,然后重新保存文本文件。
澄清文本文件中的每一行如下所示(但没有项目符号)
- 约翰·史密斯 1002931029012901
- 珍妮·西蒙斯 12901920129019
所以我在下面做了以下代码。
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 的行似乎没有被删除。谁能解释为什么?
解决方案
您需要保存操作的结果,因为每次您都在创建一个新字符串。
var text = fs.readFileSync("textfile.txt", "utf8");
text = text.split('\n').filter(function(line){
return line.indexOf( member.id ) == -1;
}).join('\n')
其余代码可以保持不变。
推荐阅读
- google-bigquery - BigQuery 中使用引用另一个表的 UDF 的相关子查询错误
- php - 如何使用各种模式刷新表单?
- r - 在 get_sentences 中搜索句子
- reactjs - React + Redux 将子组件方法绑定到父组件或保留它们自己
- swift - 通过这个函数的所有路径都会调用自己,永远运行然后崩溃
- javascript - 为什么我不在钩子的 useEffect 中创建对象?
- javascript - 在 p5.js Javascript 框架中动态更改 traingles 大小
- c# - 如何在不覆盖以前数据的情况下将数据添加到文件中
- python - 无法使用 Selenium 单击按钮 - python
- unicode - 如何在 Overleaf LaTex 中显示多字符 unicode 表情符号?