Ho fatto una ricerca per la stessa domanda, ma non ho ancora trovato una soluzione. Con la libreria asincrona è molto semplice utilizzare la query più volte ed eseguire la necessaria gestione degli errori.
Potrebbe essere utile questa variante di codice (per inserire 10.000 piccoli oggetti json in un database vuoto ci sono voluti 6 secondi).
Cristoph
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);
})