Estoy buscando procesar un archivo de texto con nodo usando una llamada de línea de comando como:
node app.js < input.txt
Cada línea del archivo debe procesarse individualmente, pero una vez procesada, la línea de entrada puede olvidarse.
Usando el oyente en datos del stdin, obtengo el vapor de entrada fragmentado por un tamaño de byte, así que configuré esto.
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);
});
Pero esto parece tan descuidado. Tener que masajear alrededor del primer y último elemento del conjunto de líneas. ¿No hay una forma más elegante de hacer esto?