Wednesday, 31 May 2017

Parse csv and insert into mysql with sequelize

I'm trying to parse a csv file and then insert the data into mysql with sequelize. Code below:

    var fs = require('fs');
    var csv = require('csv');
    var Device = require('./models').Device

    var input = fs.createReadStream('./csv/test.csv');
    var parser = csv.parse({
        delimiter: ',',
        columns: true
    })

    var transform = csv.transform(function(row) {
        var resultObj = {
            model_name: row['Model Name'],
            imei: row['IMEI#'],
            serial_number: row['S/N #'],
            meid: row['MEID#'],
            esn: row['ESN#'],
            mac_address: row['MAC#'],
            exfactory_date: row['Ex-Factory date'],
            po_number: row['PO#'],
            packaging_number: row['CN#'] ,
            sw_version: row['Software version'],
            fw_version: row['Hardware version'],
            hw_version: row['S/N #'].slice(2, 4)
        }
        Device.create({resultObj})
            .then(function() {
                console.log('Record created')
            })
            .catch(function(err) {
                console.log('Error encountered: ' + err)
            })
    })

    input.pipe(parser).pipe(transform)

After running this code, new rows are inserted into the db, but they are all 'null'. I can't quite figure out why - can someone explain to me please?



via artze

No comments:

Post a Comment