O programa Node.js falhou ao ler o arquivo de texto .log com o erro Buffer

2

Eu estou tentando visualizar um log com um programa chamado 'logger'. Quando executo o node logger , recebo o seguinte erro:

<Buffer 66 72 75 69 74 69 73 68 79 0a>

O arquivo do programa 'logger' é o seguinte:

var fs = require('fs');

var file = fs.createReadStream("veg.log");

file.on('readable', function() {
    var stream = null;
    while(null !== (stream = file.read()))  {
      stream.toString();
      console.log(stream);
      }
});

Alguém tem uma ideia do que está causando o erro? O arquivo de log é apenas texto simples. Por que isso está causando um erro com meu buffer e como descobrir qual buffer é e o que está fazendo com que ele seja acessado incorretamente?

    
por Peter David Carter 06.05.2016 / 09:55

2 respostas

0

O procedimento canônico é usar um buffer para coletar trechos de dados ouvindo on('data') events. Quando o fluxo terminar, o evento on('end') será emitido e você poderá fazer algo com o buffer.

Este código deve fazer o que você precisa:

var fs = require('fs');

var buffer = '';
var file = fs.createReadStream("veg.log");
file.on('data', function(chunk) {
  buffer += chunk;
});
file.on('end', function () {
  console.log(buffer);
});
    
por 08.05.2017 / 20:42
0

Você precisa especificar uma opção de buffer para a função createReadStream . Assim:

var file = fs.createReadStream("veg.log", "utf8");
    
por 04.02.2018 / 16:58