let counter = 0;
//ЗАПИСЬ ПРОИСХОДИТ В ЭТОМ ПОТОКЕ
let queryPromises = [];
let csvStream = csv.fromPath('players_list.csv')
.on('data', function (row) {
if (!counter == 0) {
let items = row[0].split(';');
let nickname = items[0].trim();
let email = items[1].trim();
let reg_time = moment(items[2].trim(), 'D.MM.YYYY H:mm').unix();
let stat = items[3].trim();
console.log(tempArray);
queryPromises.push(client.query(queryInsert, [nickname, email, reg_time, stat]));
}
counter++;
})
.on('end', function () {
Promise.all(queryPromises)
.then(() => {
client.query(querySelect, function (err, result) {
if (err){
return console.error('Ошибка выполнения запроса SELECT: ', err);
}
res.render('index', {players: result.rows});
done();
});
})
.cathc(err => {
// в каком то инсерте произошла ошибка
// обрабатываем
})
});
Функция client.query - асинхронная, возвращает Promise, а также позволяет передавать callback функ-ю для совместимости со старыми версиями node-pg.
Это значит, что вы делаете select из бд раньше чем еще выполнится обработчик на csv.fromPath(...args).on('data', callback)