Я читаю файл через поток, и есть одна проблема, где мне нужно проверить идентификатор электронной почты пользователя, указанный в файле CSV.
Вот сценарий.
- Если идентификатор электронной почты данного пользователя уже совпадает в файле, не разрешайте вставку этой записи.
- Если в текстовом файле есть несколько электронных писем, и я их вставляю, тогда все записи вставляются, и это не проверяет электронную почту.
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"
})
}
Есть ли способ подсчета вставленной и повторяющейся записи?
Спасибо.