【发布时间】:2019-12-03 12:55:42
【问题描述】:
我正在尝试读取上传的.csv 文件并将其存储在一个数组中,以便将数据批量插入到我的数据库中,我使用csv-parser 包和fs 用于文件流。
router.post('/fileupload', function(request, response, next){
var bulk_emp_data = [];
if(request.files){
var sampleFile = request.files.filename;
console.log(sampleFile.name);
sampleFile.mv('C:\\Users\\QPS-AUDRICK\\Desktop\\QBOS Timekeeping\\qbos\\public\\temp\\'+sampleFile.name, function(err){
if(err){
console.log('Error moving ' + err);
}else{
fs.createReadStream('C:\\Users\\QPS-AUDRICK\\Desktop\\QBOS Timekeeping\\qbos\\public\\temp\\'+sampleFile.name)
.pipe(csv())
.on('data', (data) => results.push(data))
.on('end', () => {
console.log(results);
bulk_emp_data = results;
console.log('CSV file successfully processed');
console.log(bulk_emp_data.length);
});
console.log('sample output');
}
});
}
var data = {
success: 1,
msg: 'Successfully parsed the sample file.',
data: bulk_emp_data.length
};
response.json(data);
});
通过fs.createReadStream 读取文件后,我的console.log 似乎没有被执行。这是终端的最后两行。
CSV file successfully processed
63
此外,bulk_emp_data 变量似乎已被清空。这是response的结果
{"success":1,"msg":"Successfully parsed the sample file.","data":0}
请注意,终端上的最后一行是 63,而它应该是 console.log(),而在 response 上,bulk_emp_data.length 是 0
【问题讨论】:
标签: javascript arrays node.js fs