最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

运维笔记admin5浏览0评论

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

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

我试图在csv文件中读取并在创建时删除重复的值。我尝试使用Async来做,但没有运气。我已经恢复了更简单的方式,并没有删除重复项。下面的代码读取并创建对象,但不删除重复项。我使用了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);

这将打印出记录,如果创建了新记录或其他错误,则显示为true。希望我的语法正确..

在这里看到代码:http://docs.sequelizejs/manual/tutorial/models-usage.html

发布评论

评论列表(0)

  1. 暂无评论