Sobes.tech
Junior — Middle

Դուք ունե՞ք ձեր նախագծերում գործարքների օգտագործման փորձ։

sobes.tech AI

Պատասխան AI-ից

Այո, Node.js նախագծերում ես օգտագործել եմ գործարքներ, հատկապես աշխատելիս տվյալների բազաների հետ, ինչպիսիք են PostgreSQL կամ MySQL-ը: Գործարքները թույլ են տալիս միավորել մի քանի գործողություններ մեկ ատոմային միավորի մեջ, որպեսզի կամ բոլոր փոփոխությունները կիրառվեն, կամ ոչ մեկը, ինչը կարևոր է տվյալների ամբողջականությունը պահպանելու համար:

Օրինակ՝ pg գրադարանի օգտագործմամբ PostgreSQL-ի համար գործարքի օրինակ:

const { Client } = require('pg');

async function performTransaction() {
  const client = new Client();
  await client.connect();
  try {
    await client.query('BEGIN');
    await client.query('INSERT INTO users(name) VALUES($1)', ['Alice']);
    await client.query('INSERT INTO accounts(user_id, balance) VALUES($1, $2)', [1, 100]);
    await client.query('COMMIT');
  } catch (e) {
    await client.query('ROLLBACK');
    throw e;
  } finally {
    await client.end();
  }
}

Եթե որևէ գործողություն ձախողվի, բոլոր փոփոխությունները վերացվում են։