114

我正在尝试使用 Node.js 将数据附加到日志文件,并且工作正常,但不会进入下一行。 \n似乎在我下面的函数中不起作用。有什么建议么?

function processInput ( text ) 
{     
  fs.open('H://log.txt', 'a', 666, function( e, id ) {
   fs.write( id, text + "\n", null, 'utf8', function(){
    fs.close(id, function(){
     console.log('file is updated');
    });
   });
  });
 }
4

4 回答 4

182

看起来您正在 Windows 上运行它(给定您的H://log.txt文件路径)。

尝试使用\r\n而不仅仅是\n.

老实说,\n很好;您可能正在记事本或其他不呈现非 Windows 换行符的文件中查看日志文件。尝试在不同的查看器/编辑器(例如写字板)中打开它。

于 2012-04-30T13:17:56.870 回答
112

请改用 os.EOL 常量。

var os = require("os");

function processInput ( text ) 
{     
  fs.open('H://log.txt', 'a', 666, function( e, id ) {
   fs.write( id, text + os.EOL, null, 'utf8', function(){
    fs.close(id, function(){
     console.log('file is updated');
    });
   });
  });
 }
于 2015-09-18T18:29:01.503 回答
7

使用\r\n组合在节点 js 中追加新行

  var stream = fs.createWriteStream("udp-stream.log", {'flags': 'a'});
  stream.once('open', function(fd) {
    stream.write(msg+"\r\n");
  });
于 2020-08-29T05:36:46.237 回答
0

或者,您可以使用fs.appendFile方法

let content = 'some text';
content += "\n";
fs.appendFile("helloworld.txt", content, (err) => {
    return console.log(err);
});
于 2021-12-27T10:57:19.877 回答