У меня есть функция, которая читает XML и отображает его в JSON, затем этот JSON сохраняется в цикле в MongoDB. Функции работают хорошо, данные сохраняются, но ... в строке, где у меня есть 'Row Saved', у меня есть этот консольный журнал .... Я думаю, что это неопределено, потому что mongodb save () не имеет newData для сохранения, ждет его от петля. как только это будет записано в Row Saved. Как избавиться от незнакомца? Также вы можете порадовать их меня, как закончить этот цикл сохранения? потому что когда он "останавливается" через 20-30 секунд, я снова начинаю сохранять ... поэтому мой код не закончился.
undefiend
undefiend
Row Saved
Row Saved
Row Saved
undefiend
undefiend
Код:
function FileToFetch(dir) {
fs.readdir(dir, async function(err, files) {
const results = [];
const files_path = files
.map(function(fileName) {
return {
name: fileName,
time: fs.statSync(dir + "/" + fileName).mtime.getTime()
};
})
.sort(function(a, b) {
return a.time - b.time;
})
.map(function(v) {
return dir + "/" + v.name;
});
for (let index = 0; index < files_path.length; index++) {
const element = files_path[index];
results.push(element);
}
for (let index = 0; index < results.length; index++) {
const element = results[index];
let asd = await readFile(element, "utf8");
parseString(asd, async (err, result) => {
if (err) {
throw err;
} else {
if (result.test !== undefined) {
for (
let index = 0;
index < result.test.length;
index++
) {
const element = result.test[index];
const newData = new Month({
name3: element.$.MetaDataVersionOID,
});
if (newData) {
newData
.save()
.then(() => console.log("Row Saved"))
.then(err => console.log(err));
}
}
}
}
});
}
});
}
FileToFetch("./testing");