Javascript 读取文件并在数据库中插入数据时出现NodeJS流问题
我正在通过流读取文件,有一个问题需要验证CSV文件中给出的用户的电子邮件id 这里是情景Javascript 读取文件并在数据库中插入数据时出现NodeJS流问题,javascript,node.js,express,stream,Javascript,Node.js,Express,Stream,我正在通过流读取文件,有一个问题需要验证CSV文件中给出的用户的电子邮件id 这里是情景 如果给定用户的电子邮件id在文件中已匹配,则不允许插入该记录 如果文本文件中有多封电子邮件,并且我插入了这些电子邮件,则会插入所有记录,这不是验证电子邮件 if(req.file.size{ row.user\u id=contractorID row.created_by=loggedUserID 芬德尔客户模式({ 其中:{ 电子邮件:row.email.toLowerCase(), 用户id:cont
if(req.file.size<10485760){
让成功=0
让失败=0
fs.createReadStream(req.file.path)
.pipe(csv.parse({headers:true}))
.on('data',行=>{
row.user\u id=contractorID
row.created_by=loggedUserID
芬德尔客户模式({
其中:{
电子邮件:row.email.toLowerCase(),
用户id:contractorID,
是否已删除:0
}
})。然后(结果=>{
如果(result.length>0){
失败+=1
//console.log(失败)
}否则{
console.log(“------------else-----------------”)
CustomerSchema.create(行)。然后((客户)=>{
成功+=1
}).catch(错误=>{
返回res.sendToEncode({
状态:0,
信息:“插入客户时出现问题。”
})
})
}
})
}).on('end',function(){
让s=这个;
s、 破坏();
}).on('close',function(){
sendToEncode酒店({
现状:200,
消息:“数据导入成功。”,
数据:{
“成功”:成功,
“失败”:失败
}
})
}).on('error',函数(err){
console.log(错误)
返回res.sendToEncode({
状态:0,
信息:“请检查您的文件,并确保它是逗号分隔的csv文件。”
})
})
}否则{
返回res.sendToEncode({
状态:0,
消息:“文件大小不能超过10MB”
})
}
有没有办法统计插入的和重复的记录
谢谢。你在用什么数据库?@JDunken我在用MySQL
if(req.file.size < 10485760) {
let success = 0
let fail = 0
fs.createReadStream(req.file.path)
.pipe(csv.parse({ headers: true }))
.on('data', row => {
row.user_id = contractorID
row.created_by = loggedUserID
CustomerSchema.findAll({
where: {
email: row.email.toLowerCase(),
user_id: contractorID,
is_deleted: 0
}
}).then(result => {
if(result.length > 0) {
fail += 1
// console.log(fail)
} else {
console.log("----------else----------")
CustomerSchema.create(row).then((customer) => {
success += 1
}).catch(err => {
return res.sendToEncode({
status: 0,
message: "Something went wrong while inserting customers."
})
})
}
})
}).on('end', function() {
let s = this;
s.destroy();
}).on('close', function() {
res.sendToEncode({
status: 200,
message: "Data imported successfully.",
data: {
"success": success,
"fail": fail
}
})
}).on('error', function(err) {
console.log(err)
return res.sendToEncode({
status: 0,
message: "Please check your file and make sure it is comma seperated csv file."
})
})
} else {
return res.sendToEncode({
status: 0,
message: "File size can not be more than 10MB"
})
}