118 votes

Comment ajouter à une nouvelle ligne dans Node.js

J'essaie d'ajouter des données à un fichier journal en utilisant Node.js et cela fonctionne bien, mais cela ne va pas à la ligne suivante. \n ne semble pas fonctionner dans ma fonction ci-dessous. Des suggestions ?

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

184voto

Rob Hruska Points 39151

Il semble que vous exécutez ceci sur Windows (compte tenu de votre chemin de fichier H://log.txt).

Essayez d'utiliser \r\n au lieu de \n.

Honnêtement, \n est correct ; vous consultez probablement le fichier journal dans le bloc-notes ou quelque chose d'autre qui ne rend pas les nouvelles lignes non-Windows. Essayez de l'ouvrir dans un autre visualiseur/éditeur (par exemple Wordpad).

116voto

shinzo Points 1169

Utilisez plutôt la constante 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');
    });
   });
  });
 }

8voto

Codemaker Points 639

utilisez la combinaison \r\n pour ajouter une nouvelle ligne dans le nœud js

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

1voto

hamon Points 31

Alternativement, vous pouvez utiliser la méthode fs.appendFile

let content = 'some text';
content += "\n";
fs.appendFile("helloworld.txt", content, (err) => {
    return console.log(err);
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X