Lit les lignes de manière synchrone à partir du fichier dans Node.js

J'ai besoin d'analyser un fichier ligne par ligne dans le format suivant avec Node.js:

13
13
0 5
4 3
0 1
9 12
6 4
5 4
0 2
11 12
9 10
0 6
7 8
9 11
5 3

Il représente un graphique. Les deux premières lignes sont le nombre d'arêtes et de sommets, suivi par les bords.

Je peux accomplir la tâche avec quelque chose comme:

var fs = require('fs');
var readline = require('readline');
var read_stream = fs.createReadStream(filename);
var rl = readline.createInterface({
    input: read_stream
});
var c = 0;
var vertexes_number;
var edges_number;
var edges = [];
rl.on('line', function(line){
    if (c==0) {
        vertexes_number = parseInt(line);
    } else if (c==1) {
        edges_number = parseInt(line);
    } else {
        edges.push(line.split(' '));
    }
    c++;
})
.on('end', function(){
    rl.close();
})

Je comprends ce genre de choses pourrait ne pas être ce Node.js a été pensé pour, mais la cascade if dans le line de rappel n'a pas vraiment l'air élégant /lisible pour moi.

Est-il un moyen de lire de façon synchrone lignes à partir d'un flux comme dans tout autre langage de programmation?

Je suis ouvert à utiliser des plug-ins si il n'y a pas une solution intégrée.

[MODIFIER]

Désolé, j'aurais du préciser que je voudrais éviter de charger tout le fichier en mémoire au préalable

source d'informationauteur Andrea Casaccia | 2015-12-11