Estou tentando anexar dados a um arquivo de log usando Node.js e está funcionando bem, mas não vai para a próxima linha. \n
não parece estar funcionando na minha função abaixo. Alguma sugestão?
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
fonte
fonte
\r\n
?Respostas:
Parece que você está executando isso no Windows (dado o
H://log.txt
caminho do arquivo).Tente usar em
\r\n
vez de apenas\n
.Honestamente,
\n
está bem; você provavelmente está visualizando o arquivo de log no bloco de notas ou algo mais que não processa novas linhas não-Windows. Tente abri-lo em um visualizador / editor diferente (por exemplo, Wordpad).fonte
Em vez disso, use a constante os.EOL.
fonte
os.EOL
você terá algumas linhas terminando com/r/n
(desde o momento em que o aplicativo estava em execução no Windows) e, em seguida, você terá linhas terminando apenas com/n
(quando o aplicativo é executado no Linux). Isso pode causar alguns problemas, especialmente se houver qualquer análise automática dos arquivos de log. Decidi apenas usar/n
.fs.write
comos.EOL
em um binário. Eu costumavapkg
gerar um binário para Windows. Quando executado, o último registro escrito tem uma nova linha anexada a ele (como esperado); mas, parece que outros aplicativos do Windows tratam disso é um novo recorde. Estou procurando uma solução alternativa.use a
\r\n
combinação para acrescentar uma nova linha no nó jsfonte