Eu estou olhando para processar um arquivo de texto com o nó usando uma chamada de linha de comando como:
node app.js < input.txt
Cada linha do arquivo precisa ser processada individualmente, mas uma vez processada, a linha de entrada pode ser esquecida.
Usando o ouvinte em dados do stdin, recebo o vapor de entrada dividido por um tamanho de byte, então configurei isso.
process.stdin.resume();
process.stdin.setEncoding('utf8');
var lingeringLine = "";
process.stdin.on('data', function(chunk) {
lines = chunk.split("\n");
lines[0] = lingeringLine + lines[0];
lingeringLine = lines.pop();
lines.forEach(processLine);
});
process.stdin.on('end', function() {
processLine(lingeringLine);
});
Mas isso parece tão desleixado. Ter que massagear o primeiro e o último itens da matriz de linhas. Não existe uma maneira mais elegante de fazer isso?