Я использую mongojs для обновления данных в коллекции mongodb. Программа читает файл по строкам, и для каждой строки он делает обновление в базе данных mongodb. Обновление работает нормально, но элемент управления не возвращается.Обратный вызов Mongojs не возвращается
var fs = require('fs')
var reader = require('buffered-reader');
var dataReader = reader.DataReader;
var mongojs = require('mongojs')
var db = mongojs.connect('testdb');
var col = db.collection('testCollection');
var file = "sample.txt";
var loadData = function (line) {
record = line.split(",");
rec_key = record[1];
col.update(
{rec_key: rec_key},
{rec_key: rec_key,
data: 5678},
{upsert:true}, function(err){});
}
new dataReader (file, { encoding: "utf8" })
.on ("error", function(error){
console.log ("error: " + error);
})
.on ("line", loadData)
.on ("end", function (end){
console.log("EOF");
}).read();
После выполнения этого процесса с узла элемент управления не возвращается. Программа работает бесконечно. Если я комментирую функцию loadData в dataReader, он отлично работает, программа заканчивается после итерации по всем строкам.
Как заставить программу подойти к концу после итерации по всем линиям и сделать обновление в mongodb?
Не работает. Я все еще сталкиваюсь с той же проблемой. Программа работает бесконечно –