Как использовать async с fast-csv для хранения массовых записей в базе данных PostgreSQL? - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь прочитать файл CVS (он содержит N записей) и сохранить записи в таблице PostgreSQL, для чего я использовал fast-csv npm.

Когда вызывается приведенный ниже код, он работаетдля чтения данных из CSV и сохранения их в таблице, но не может вернуть результаты (возвращает пустой результат, фактически он не входит в консоль «в конце».

const csv = require('fast-csv');
const fs = require('fs');

Controller.addCsv = async(user, data) => {
    const stream = await fs.createReadStream(data.path);
        await csv.fromStream(stream, {headers: true})
        .on("data", async(data) => {
            const add_data = {
            name: data.name,
            address: data.address,
            phoneNo: data.phoneNo,
            email: data.email,
            active: data.active
            created_at: new Date(),
            updated_at: new Date()
        };
        const result = await models.table.create(add_data);
        console.log(result.dataValues")
        /*return result.dataValues*/ //I tried to return here too but no luck
        })
        .on("end", async() => {
            console.log('at end');
            return true;
        });
}
...