Ich versuche, Daten mit Node.js an eine Protokolldatei anzuhängen, und das funktioniert einwandfrei, aber es geht nicht in die nächste Zeile. \n
scheint in meiner Funktion unten nicht zu funktionieren. Irgendwelche Vorschläge?
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');
});
});
});
}
javascript
node.js
newline
DaBears
quelle
quelle
\r\n
?Antworten:
Es sieht so aus, als würden Sie dies unter Windows ausführen (unter Angabe Ihres
H://log.txt
Dateipfads).Versuchen Sie es mit
\r\n
statt nur\n
.Ehrlich gesagt
\n
ist in Ordnung; Wahrscheinlich wird die Protokolldatei im Editor oder in einem anderen Bereich angezeigt, in dem keine Nicht-Windows-Zeilenumbrüche gerendert werden. Versuchen Sie, es in einem anderen Viewer / Editor (z. B. Wordpad) zu öffnen.quelle
Verwenden Sie stattdessen die Konstante os.EOL.
quelle
os.EOL
anfügt, werden einige Zeilen mit/r/n
(ab dem Zeitpunkt, an dem die App unter Windows ausgeführt wurde) enden, und dann werden Zeilen nur mit/n
(wenn die App unter Linux ausgeführt wird) enden . Dies kann zu Problemen führen, insbesondere wenn eine automatische Analyse der Protokolldateien vorhanden ist. Ich entschied mich nur zu verwenden/n
.fs.write
mit verwendet wurde,os.EOL
in eine Binärdatei packen. Ich habe früherpkg
eine Binärdatei für Windows generiert. Bei der Ausführung wird dem letzten geschriebenen Datensatz (wie erwartet) eine neue Zeile angehängt. Es scheint jedoch, als ob andere Windows-Anwendungen einen neuen Datensatz behandeln. Ich bin auf der Suche nach einem Workaround.