نحوه استفاده از تراکنش ها به روشی ساده در چارچوب Nest.js

Nest.js از تراکنش ها با استفاده از کتابخانه TypeORM که یک کتابخانه ORM محبوب برای Node.js است، پشتیبانی می کند.
برای استفاده از تراکنشها در Nest.js، میتوانید این مراحل را دنبال کنید:
1 – یک کلاس Connection را از کتابخانه TypeORM وارد کنید:
import { Connection } from 'typeorm';
2 – اتصال TypeORM را به سرویس یا کنترلر خود تزریق کنید:
import { Injectable } from '@nestjs/common';
import { InjectConnection } from '@nestjs/typeorm';
import { Connection } from 'typeorm';
@Injectable()
export class MyService {
constructor(
@InjectConnection() private connection: Connection,
) {}
}
3 – برای انجام تراکنش از روش تراکنش شی اتصال استفاده کنید:
await this.connection.transaction(async (manager) => {
// Execute as operações de banco de dados aqui
});
در تابعی که به تراکنش منتقل می شود، می توانید هر عملیات پایگاه داده ای را که دوست دارید انجام دهید، مانند درج، به روز رسانی یا حذف. اگر یک استثنا در داخل تابع پرتاب شود، تراکنش به طور خودکار به عقب برمی گردد.
برای مثال، اگر میخواهید یک کاربر جدید و یک پست جدید را همزمان در یک تراکنش ایجاد کنید، میتوانید این کار را انجام دهید:
await this.connection.transaction(async (manager) => {
const user = await manager.create(User, { name: 'John' });
const post = await manager.create(Post, { title: 'Hello, World!', content: 'This is my first post.' });
await manager.save(user);
await manager.save(post);
});
توجه داشته باشید که ما از متد ایجاد مدیریت موجودی TypeORM برای ایجاد اشیاء کاربر و پست جدید استفاده می کنیم و سپس با استفاده از روش ذخیره این اشیاء را ذخیره می کنیم. این عملیات در داخل تراکنش انجام می شود. اگر مشکلی پیش بیاید، تراکنش برگشت داده خواهد شد و هیچ کاربر یا پستی در پایگاه داده ذخیره نخواهد شد.
این به شما کمک می کند تا نحوه استفاده از تراکنش ها را به روشی ساده در چارچوب Nest.js با TypeORM درک کنید.
مطالعات خوب!