Fiz uma busca pela mesma dúvida, mas ainda não encontrei solução. Com a biblioteca assíncrona é muito simples usar a consulta várias vezes, e fazer o tratamento de erros necessário.
Pode ser que essa variante de código ajude. (para inserir 10.000 pequenos objetos json em um banco de dados vazio, levou 6 segundos).
Christoph
function insertData(item,callback) {
client.query('INSERT INTO subscriptions (subscription_guid, employer_guid, employee_guid)
values ($1,$2,$3)', [
item.subscription_guid,
item.employer_guid,
item.employee_guid
],
function(err,result) {
// return any err to async.each iterator
callback(err);
})
}
async.each(datasetArr,insertData,function(err) {
// Release the client to the pg module
done();
if (err) {
set_response(500, err, res);
logger.error('error running query', err);
return console.error('error running query', err);
}
logger.info('subscription with created');
set_response(201);
})