در توسعه برنامههای وب، اتصال به پایگاه داده از اهمیت بالایی برخوردار است. NestJS، یک چارچوب قدرتمند و محبوب برای توسعه برنامههای وب در محیط Node.js است. از آنجا که استفاده از ORMها نیز در توسعه برنامههای پایگاه داده بسیار رایج است، اتصال TypeORM به NestJS میتواند انتخابی عالی برای تسهیل توسعه و مدیریت پایگاه داده باشد. در این مقاله، بهترین روشها برای اتصال TypeORM به NestJS را بررسی خواهیم کرد.
مرحله 1: برای استفاده از TypeORM و NestJS TypeORM ابتدا نیاز دارید که پکیجهای مربوط به TypeORM و NestJS TypeORM را نصب کنید. برای این کار از دستور زیر استفاده میکنید:
npm install typeorm @nestjs/typeorm
مرحله 2: پیکربندی اتصال به پایگاه داده در فایل app.module.ts
، TypeORM را به برنامه NestJS خود اضافه کنید و تنظیمات اتصال به پایگاه داده را انجام دهید. مثال زیر نشان میدهد چگونه میتوانید به یک پایگاه داده MySQL متصل شوید:
typescriptCopy codeimport { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; @Module({ imports: [ TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', port: 3306, username: 'root', password: 'password', database: 'mydatabase', entities: [__dirname + '/**/*.entity{.ts,.js}'], synchronize: true, }), ], }) export class AppModule {}
در این مثال، ما از MySQL به عنوان پایگاه داده استفاده کردهایم و تنظیمات اتصال به آن را انجام دادهایم. توجه کنید که entities
باید مسیری را به مدلهای شما ارائه دهد.
مرحله 3: تعریف مدلها حالا باید مدلهای مربوط به جداول پایگاه داده را تعریف کنید. به عنوان مثال، برای جدول "Users" میتوانید یک کلاس مدل به شکل زیر تعریف کنید:
typescriptCopy codeimport { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class User { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column() email: string; @Column() password: string; }
مرحله 4: استفاده از ریپازیتوریها برای انجام عملیات CRUD بر روی جدول "Users"، میتوانید از ریپازیتوری استفاده کنید. در فایل مربوط به سرویس یا کنترلر خود، ریپازیتوری را تزریق کنید و از آن استفاده کنید. مثال زیر نشان میدهد چگونه میتوانید از ریپازیتوری "Users" استفاده کنید:
typescriptCopy codeimport { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { User } from './user.entity'; @Injectable() export class UserService { constructor( @InjectRepository(User) private userRepository: Repository<User>, ) {} async findAll(): Promise<User[]> { return this.userRepository.find(); } async findById(id: number): Promise<User> { return this.userRepository.findOne(id); } async create(user: User): Promise<User> { return this.userRepository.save(user); } async update(id: number, user: User): Promise<User> { await this.userRepository.update(id, user); return this.userRepository.findOne(id); } async delete(id: number): Promise<void> { await this.userRepository.delete(id); } }
در این مثال، ما از روشهای پیشفرض ریپازیتوری برای انجام عملیات CRUD استفاده کردهایم. شما میتوانید روشهای سفارشی بیشتری را نیز تعریف کنید.
نتیجهگیری: در این مثال، ما به شما نشان دادیم که چگونه میتوانید TypeORM را به NestJS متصل کنید و از آن برای تعامل با پایگاه داده استفاده کنید. با تعریف مدلها، استفاده از ریپازیتوریها و انجام عملیات CRUD، شما قادر خواهید بود با پایگاه داده ارتباط برقرار کنید و دادههای خود را مدیریت کنید. همچنین، این روشها به شما امکان میدهند که برنامههای قابل تست و مقیاسپذیر با NestJS و TypeORM توسعه دهید.
برای یادگیری راه اندازی پروژه nestjs می توانید از لینک استفاده کنید.
میتوانید من را در پلتفرمهای GitHub و LinkedIn دنبال کنید و در صفحههای پروفایل من پیامها و سوالات خود را بگذارید. من با شما در این پلتفرمها همکاری خواهم کرد و به سوالات شما پاسخ خواهم داد.
منتظر دیدن شما در این پلتفرمها هستم و آماده همکاری و پاسخگویی به سوالات شما خواهم بود.