If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
NestJS में MySQL database को connect करने के लिए TypeORM
का use किया जाता है। TypeORM एक Object Relational Mapper (ORM
) है जो आपको relational databases के साथ easily काम करने कि facility देता है।
यह TypeScript के साथ अच्छे से integrate होता है और आपको MySQL जैसे databases के साथ interact करने के लिए clean, readable, और maintainable syntax provide करता है।
इस topic में हम step-by-step समझेंगे कैसे आप NestJS application को MySQL database के साथ TypeORM के through connect कर सकते हैं। हम connection setup, entities, repositories, और migrations का use देखेंगे।
●●●
TypeORM एक ORM है जो relational databases (like MySQL, PostgreSQL, SQLite, etc.) के साथ काम करने के लिए use होता है। इसका काम SQL queries लिखने को simplify करना है।
इसमें आप entities बनाते हैं जो आपके database tables को represent करती हैं, और TypeORM
automatically SQL queries को entities और decorators के according generate करता है।
Object-Oriented Programming (OOP) principles का use करते hue SQL operations perform कर सकते हैं।
Automatic Migrations और Schema Synchronization का support .
Strong TypeScript integration के साथ clean code लिखना।
●●●
NestJS को MySQL के साथ integrate करने के लिए आपको कुछ prerequisites install करनी हैं -
Node.js : Ensure करें कि Node.js installed हो।
NestJS CLI : NestJS को quickly setup करने के लिए Nest CLI install करें।
MySQL Database : अपने local machine पर या remote server पर MySQL install और configure करें।
npm i -g @nestjs/cli
TypeORM
और MySQL
package को install करने के लिए command
npm install @nestjs/typeorm typeorm mysql2
चलिए अब NestJS application बनाते हैं और उससे MySQL के साथ connect करते हैं , हम NestJS CLI
का use करेंगे एक new project create करने के लिए।
nest new nest-mysql-app
इसके बाद, TypeORM
और MySQL
के packages install करें (as mentioned above).
●●●
TypeORM को configure करने के लिए आपको TypeOrmModule
को import करना होगा और database connection setup करना होगा।
AppModule
में MySQL के लिए TypeORM configure करते हैं।
File : src/app.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: 'password',
database: 'nest_db',
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: true,
}),
],
})
export class AppModule {}
यहां हमने
TypeOrmModule.forRoot()
का use किया है MySQL के साथ connection बनाने के लिए।
synchronize
option development mode के लिए helpful होता है जो automatically database schema entities के according sync करता है।
Entities
NestJS में MySQL tables को represent करती हैं, हर entity एक class
होती है जिसमे TypeORM decorators का use करके columns और relationships define किये जाते हैं।
चलिए एक User
entity बनाते हैं जो हमारे database में users table को represent करेगी।
File : src/user/user.entity.ts
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@Column({ unique: true })
email: string;
@Column()
password: string;
}
यहां
@Entity()
decorator का use करके User class को MySQL table से map किया गया है।
@PrimaryGeneratedColumn()
से auto-increment primary key define कि गयी है।
@Column()
से table के columns define किये गए हैं।
तो कुछ इस तरह से NestJs में MySQL
को setup किया जाता है table को entity के रूप में define किया जाता है। next topic में हम देखेंगे की कैसे data को insert
करते हैं।
●●●
Use Migrations
: Development के time synchronize: true helpful होता है, लेकिन production के लिए migrations का use करें ताकि schema changes को safely apply किया जा सके।
Handle Errors
: Database operations के लिए error handling लगाएं , जैसे invalid data, unique constraints, etc. के लिए proper exception handling करें।
Use DTOs (Data Transfer Objects)
: Data validation और sanitization के लिए DTOs
का use करें, जो आपको user input को validate करने में help करता है।
Avoid Direct Entity Exposure
: आप entities को directly expose न करें, DTOs
का use करके response sanitize करें।