Junior — Middle
Ma'lumotlar bazalari yoki tizimlarda tranzaktsiyalarni boshqarish bo'yicha tajribangiz bormi?
sobes.tech AI
AIdan javob
Ha, tranzaksiya boshqaruvi ma'lumotlar bazalari bilan ishlashda muhim bo'lak bo'lib, ayniqsa ma'lumotlarning yaxlitligini ta'minlash uchun.
Node.jsda odatda Sequelize, TypeORM yoki to'g'ridan-to'g'ri drayverlar (masalan, PostgreSQL uchun) kabi kutubxonalar ishlatiladi.
Async/await va Sequelize kutubxonasi yordamida tranzaksiya boshqaruvi misoli:
const { sequelize } = require('./models');
async function performTransaction() {
const t = await sequelize.transaction();
try {
await User.create({ name: 'John' }, { transaction: t });
await Order.create({ userId: 1, total: 100 }, { transaction: t });
await t.commit();
} catch (error) {
await t.rollback();
throw error;
}
}
Bu yerda, tranzaksiya ichidagi barcha operatsiyalar muvaffaqiyatli amalga oshiriladi yoki xatolik yuzaga kelsa, ular bekor qilinadi, bu esa ma'lumotlarning qisman yangilanishlarini oldini oladi.