gpt4 book ai didi

javascript - 从 Sequelize 和 Node.js 中的 CSV 中删除重复值

转载 作者:行者123 更新时间:2023-12-03 22:39:28 25 4
gpt4 key购买 nike

我正在尝试读取 csv 文件并在创建重复值时删除它们。我尝试使用异步来做到这一点,但没有运气。我已经恢复到一种更简单的方式并且不删除重复项。下面的代码读取并创建对象,但不会删除重复项。我使用了 fast-csv 库来读取 csv。

const router = require('express').Router();
const Staff = require('../models/Staff');
const fs = require('fs');
const csv = require('fast-csv');

module.exports = router;

router.get('/add_csv', function (req, res) {
var stream = fs.createReadStream("./public/assets/csv/data_extract.csv");
csv
.fromStream(stream, {headers : true})
.on("data", function(data){
console.log(data);

const userName = data.name;
const firstName = data.forename;
const lastName = data.surname;
const email = data.college_email;

Staff.findOrCreate({
where : {
userName : userName,
firstName : firstName,
lastName : lastName,
email : email
}
});
})
.on("end", function(){
console.log("done");
res.send("done");
});
});

最佳答案

您是否尝试过 .spread 子句进行调试?

如果您添加 .spread 子句,它将逐条记录地告诉您它在做什么。

改变

    Staff.findOrCreate({
where : {
userName : userName,
firstName : firstName,
lastName : lastName,
email : email
}
});


    Staff.findOrCreate({
where : {
userName : userName,
firstName : firstName,
lastName : lastName,
email : email
}
})
.spread((staff, created) => {
console.log(staff.get({
plain: true
}))
console.log(created);

这将打印出记录并在创建新记录时显示为真,否则为假。希望我的语法是正确的..

请参阅此处的示例代码:
http://docs.sequelizejs.com/manual/tutorial/models-usage.html

关于javascript - 从 Sequelize 和 Node.js 中的 CSV 中删除重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52090094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com