I have a csv file that I need to parse and store in a database. I use sequelize for this
Here is how I defined the model of my table in sequelize :
const Person= sequelize.define( 'person', { id: { type: DataTypes.UUID, primaryKey: true, defaultValue: uuidv4(), allowNull: false }, name: { type: DataTypes.STRING, }, age: { type: DataTypes.INTEGER, } }, { createdAt: false, updatedAt: false, tableName: 'person' } ) return Person }
then I have a csv file "test.csv":
he ,dd liza, 23 sarah, 22
basically I can't change the headers in my csv file and I have to keep the same structure defined in the db, I use papaparse to parse this file :
const papa = require('papaparse'); const fs = require('fs') const file = fs.createReadStream(__basedir + "/test.csv"); papa.parse(file, { header: true, step: async function(results, parser) { console.log("Row data:", results.data); try{ await Person.create(results.data) }catch(e){ console.log(e) } } });
in output I get the following error :
SequelizeUniqueConstraintError: Validation error
the name, surname and age fields are null in the database
I am looking for a solution to ignore the headers of the csv file, how can I do that?
Top comments (1)
try setting
header: false
while parsing.