【问题标题】:Appending Each String to a New Line While Writing to File in JavaScript [duplicate]在JavaScript中写入文件时将每个字符串附加到新行[重复]
【发布时间】:2021-11-20 05:12:18
【问题描述】:

使用节点fsappendFile() 方法和JSON.stringify,如何在每次调用函数时将每个单独的字符串写入新行?

var fs = require("fs");

const writeStringToNewLines = (err) => {
  fs.appendFile("./logfile.txt", JSON.stringify(err, null, " "), (err) => {});
};

writeStringsToNewLines("test1");
writeStringsToNewLines("test2");

目前它像这样写入 logfile.txt:

"test1""test2"

但我想让它把每个字符串写入一个新行:

"test1"
"test2"

【问题讨论】:

  • 嗨!输出末尾的神奇\n 怎么样?
  • @Philippe 你在说这个吗? fs.appendFile("./logfile.txt", JSON.stringify(err, null, "\r"), (err) => {}); 或这个:writeStringsToNewLines("test1 \r"); 或这个:JSON.stringify(err + "\r", null, "") 因为不幸的是这些都没有工作。
  • 你能检查一下这个问题吗? stackoverflow.com/q/10384340/4698373
  • 因为这个链接里有类似的解决方案,我会投票关闭这个,谢谢@Philippe

标签: javascript append filesystems fs write


【解决方案1】:

你可以这样做writeStringsToNewLines("string\r\n")

【讨论】:

  • 不幸的是,这对我不起作用。它只是写"string\r\n"
  • 那是因为你在字符串上调用了 JSON.stringify() 方法,它将转义符变成 literal 字符。
  • 哎呀,我的错,谢谢,这确实有效!
  • 在 StackOverflow 上说谢谢意味着“接受答案”。
  • 接受答案需要 5 分钟。在我继续做决定之前,我也在寻找最好的解决方案。不幸的是,您的解决方案不像 @Philippe 那样动态,但我非常感谢您的帮助。
【解决方案2】:

需要考虑的事项:

fs.appendFile("./logfile.txt", JSON.stringify(err, null, " ") + "\r\n", (err) => {});

【讨论】:

  • 是的,这也是正确的。字符串化 + 添加新行。
  • 我在您的 cmets 链接中找到了解决方案。 fs.appendFile("./logfile.txt", err + os.EOL, (err) => {});,尽管哈哈,我仍在努力找出最好的。我认为这可能不是那么好,因为您必须需要更多的依赖项。
猜你喜欢
  • 2016-06-27
  • 2011-02-24
  • 2016-08-01
  • 2011-04-03
  • 2016-04-11
  • 2015-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多