Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何附加到Node.js中的新行_Javascript_Node.js_Newline - Fatal编程技术网

Javascript 如何附加到Node.js中的新行

Javascript 如何附加到Node.js中的新行,javascript,node.js,newline,Javascript,Node.js,Newline,我正在尝试使用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(){ co

我正在尝试使用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');
    });
   });
  });
 }

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

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


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

使用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');
    });
   });
  });
 }

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

  var stream = fs.createWriteStream("udp-stream.log", {'flags': 'a'});
  stream.once('open', function(fd) {
    stream.write(msg+"\r\n");
  });

您是否在Windows上/使用基于Windows的文本编辑器查看文件,因此需要CRLF对,
\r\n
?在记事本中查看:)在记事本++中供参考,您可以在对话框底部找到所有“\\n”替换“\n”为选中的“扩展”搜索模式。(1/2)请注意,由于node.js可以在许多不同的环境中运行,可以将应用程序从windows环境移动到linux环境。这意味着,如果您的应用程序使用
os.EOL
附加日志,则会有一些行以
/r/n
结尾(从应用程序在windows上运行时开始),然后会有行以
/n
结尾(当应用程序在linux上运行时)。这可能会带来一些麻烦,尤其是在日志文件的任何自动解析都已就绪的情况下。我决定只使用
/n
(2/2)尽管如此,我还是对你的答案投了更高的票,因为如果我们生活在一个完美的监管世界中,这将是正确的答案。我使用linux,但喜欢这种方法,因为我可能希望在将来使用时具有可移植性。这是最好的答案,因为它可以跨平台工作。嗯,我必须将使用
fs.write
os.EOL
的应用程序打包成二进制文件。我使用
pkg
为Windows生成二进制文件。执行时,最后写入的记录会附加一行新行(如预期的那样);但是,似乎其他Windows应用程序都认为这是一个新记录。我正在四处找工作。