【发布时间】:2015-11-24 23:13:00
【问题描述】:
以下将从磁盘读取许多 CSV 文件并将其导入 MongoDB,但如果没有通过 resizePhoto() 函数,NodeJS 在导入所有文件后不会退出(其中包含调整图像大小后的 process.exit )。
如何在导入所有文件后正常关闭而不中断?如果我添加一个 process.exit .on end 它将在导入第一个文件后退出。
var importData = function(fileName) {
// Get file from disk.
var filePath = path.join(folder, fileName);
// Read and import the CSV file.
csv.fromPath(filePath, {
objectMode: true,
headers: keys
})
.on('data', function (data) {
var Obj = new models[fileName](data);
models[fileName].find({}).remove().exec();
Obj.save(function (err, importedObj) {
if (err) {
console.log(fileName, err);
} else if (fileName === 'PHOTOS') {
resizePhoto(importedObj);
}
});
})
.on('end', function() {
console.log(fileName + ': Imported.');
});
};
module.exports = importData;
【问题讨论】:
-
csv变量从何而来?
-
调用这个的代码在哪里?看来您应该向
importData()添加一个回调并在导入完成后调用该回调,然后调用者可以在该回调中执行process.exit()。 -
来自 fast-csv 的@aaaidan
标签: javascript node.js mongodb