2

Node を使用して CSV ファイルをロードし、それを MongoDB データベースに書き込みます。実際には機能していますが、スクリプトが終了していません! コアは次のとおりです。

function commute_process(csvstr, col_commute) {
    csv()
    .from(csvstr, {columns: true})
    .transform(function(row) {
        // unimportant stuff
        return row;
    })
    .on('record', function(row) {
        cleanedrow = // unimportant
        console.log(cleanedrow);
        col_commute.insert(cleanedrow, {w:1}, function(err, result) { assert.equal(null, err); });
    })
    .on('end', function(count){
      console.log('Number of lines: '+count);
    });

    console.log("end of commute_process()")
};

csvstr大きな紐です。col_commuteモンゴコレクションです。行ごとのログは正常に出力されます。ログはend期待どおりに発生します (5000 行)。データベースには正しいデータがあります。以上です。「commute_process() の終了」行は発生しません。

なぜだめですか?

4

2 に答える 2

1

これは、mongo 接続が開いたままになっている可能性が高いためです。終了イベント内で接続インスタンスの close メソッドを起動するだけです。それでも閉じない場合は、 process.exit() を実行します

于 2013-10-15T01:53:32.613 に答える