J'essaie d'ajouter des données à un fichier journal en utilisant Node.js et cela fonctionne bien, mais cela ne passe pas à la ligne suivante. \n
ne semble pas fonctionner dans ma fonction ci-dessous. Aucune suggestion?
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
la source
la source
\r\n
?Réponses:
Il semble que vous l'exécutiez sous Windows (compte tenu de votre
H://log.txt
chemin de fichier).Essayez d'utiliser
\r\n
au lieu de simplement\n
.Honnêtement,
\n
c'est bien; vous visualisez probablement le fichier journal dans le bloc-notes ou quelque chose d'autre qui ne rend pas les sauts de ligne non Windows. Essayez de l'ouvrir dans un autre visualiseur / éditeur (par exemple Wordpad).la source
Utilisez plutôt la constante os.EOL.
la source
os.EOL
vous aurez des lignes se terminant par/r/n
(à partir du moment où l'application était en cours d'exécution sur Windows), puis vous aurez des lignes se terminant juste par/n
(lorsque l'application s'exécute sous Linux). Cela peut poser des problèmes, en particulier si une analyse automatique des fichiers journaux est en place. J'ai décidé de simplement utiliser/n
.fs.write
avecos.EOL
dans un binaire. J'avais l'habitudepkg
de générer un binaire pour Windows. Lorsqu'il est exécuté, le dernier enregistrement écrit a une nouvelle ligne ajoutée (comme prévu); mais, semble que d'autres applications Windows traitent, c'est un nouveau record. Je cherche une solution de rechange.utiliser une
\r\n
combinaison pour ajouter une nouvelle ligne dans le nœud jsla source