ฉันต้องการประมวลผลไฟล์ข้อความที่มีโหนดโดยใช้การเรียกบรรทัดคำสั่งเช่น:
node app.js < input.txt
แต่ละบรรทัดของไฟล์จะต้องถูกประมวลผลแยกกัน แต่เมื่อประมวลผลแล้วบรรทัดที่ถูกลืมสามารถถูกลืมได้
ด้วยการใช้ฟังข้อมูลของ stdin ฉันได้รับไอน้ำอินพุตที่มีขนาดเป็นไบต์ดังนั้นฉันจึงตั้งค่านี้
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);
});
แต่ดูเหมือนว่าเลอะเทอะมาก ต้องนวดรอบรายการแรกและสุดท้ายของอาร์เรย์บรรทัด ไม่มีวิธีที่สง่างามกว่านี้อีกหรือ?