برنامه نویسی

نحوه استفاده از تراکنش ها به روشی ساده در چارچوب 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 درک کنید.

مطالعات خوب!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا