Transactions
- Node.js kursu
- İleri seviye
- Ders 34/83
- 5 dk
pg.Client ile transaction öğrenirsin.
Transactions
Bir transaction (işlem), birden çok SQL ifadesini tek bir atomik birim olarak çalıştırır. Ya hepsi başarılı olur ya da hiçbiri. Bu, veri bütünlüğü için kritiktir.
PostgreSQL'de transaction kalıbı: BEGIN → sorgular → COMMIT (başarılı) veya ROLLBACK (hata). pg modülünde pool.connect() ile bir istemci alır, client.query("BEGIN") ile başlatır, sorguları çalıştırır, sonra COMMIT veya ROLLBACK yapar ve istemciyi client.release() ile iade edersin.
pool.connect kalıbı
Transaction için pool.connect() ile özel bir istemci alırsın. Bu istemci, transaction boyunca tek bir bağlantı kullanır; bu, birden çok sorgunun aynı bağlantıda çalışmasını sağlar.
Kalıp: const client = await pool.connect(); try { await client.query("BEGIN"); await client.query(...); await client.query("COMMIT"); } catch(e) { await client.query("ROLLBACK"); } finally { client.release(); }. finally bloğu bağlantının her zaman iade edilmesini sağlar; bu, havuz tükenmesini önler.
Uygulama pool.connect türünü yaz
Pool sınıfını pg'den içe aktar. Bir havuz oluştur: new Pool({}). typeof pool.connect sonucunu yaz.
Başlangıç kodu
// modülü içe aktar
// havuz oluştur
// connect türünü yazÖrnek çözüm
const { Pool } = require("pg");
const pool = new Pool({});
console.log(typeof pool.connect);Beklenen çıktı
function
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Transaction'da hata olursa ne yapılır?
- COMMIT
- ROLLBACK Doğru cevap
- BEGIN
- SELECT
Açıklama: Hata olursa ROLLBACK ile işlem geri alınır.
2 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
BEGIN |
İşlem başlatır |
COMMIT |
Değişiklikleri kaydeder |
ROLLBACK |
Geri alır |
client.release() |
Bağlantıyı iade eder |
3 Metod adını tamamla
const client = await pool.____()
const client = await pool.connect()
Açıklama: pool.connect() transaction için bir istemci verir.