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 के साथ TypeORM का use करते hue आप easily records insert
कर सकते हैं। TypeORM, जो कि एक Object Relational Mapper (ORM) है, आपको relational databases (like MySQL) के साथ काम करने का simple और efficient तरीका provide करता है।
इसमें आप SQL queries
लिखने के बजाय entities से data insert, update, और retrieve कर सकते हैं।
इस topic में हम step-by-step देखेंगे कैसे NestJS के साथ MySQL का connection establish करते हैं और records को insert
करते हैं using TypeORM.
●●●
NestJS में entities
को use करके database के tables
को define किया जाता है , हर entity एक class होती है जो MySQL table के columns को represent करती है।
चलिए एक User
entity बनाते हैं जो MySQL 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 में TypeORM Repository का use करके आप database में records insert कर सकते हैं। TypeORM repositories को inject करके आप CRUD (Create, Read, Update, Delete) operations easily perform कर सकते हैं।
NestJS CLI का use करके UserService और UserController बनाएं -
nest g service user nest g controller user
अब हम UserService
में record insert करने का method लिखते हैं।
File : src/user/user.service.ts
import { 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 create(userData: Partial<User>): Promise<User> {
const newUser = this.userRepository.create(userData); // Create new user entity
return this.userRepository.save(newUser); // Save user to the database
}
}
यहां
userRepository.create()
का use एक नया user entity create करने के लिए होता है।
userRepository.save()
का use उस entity को database में save करने के लिए होता है।
अब हम UserController
में endpoint बनाते हैं जो user data को POST
request के through insert करेगा।
File : src/user/user.controller.ts
import { Controller, Post, Body } from '@nestjs/common';
import { UserService } from './user.service';
import { User } from './user.entity';
@Controller('users')
export class UserController {
constructor(private readonly userService: UserService) {}
@Post()
createUser(@Body() userData: Partial<User>): Promise<User> {
return this.userService.create(userData);
}
}
यहां
@Post()
decorator POST request handle करता है।
@Body()
decorator request body को inject करता है जो user data होता है।
createUser()
method service के create() method को call करता है और user को database में insert करता है।
●●●
NestJS में DTOs का use करके आप data को validate और sanitize कर सकते हैं। DTOs basically classes होती हैं जो input data structure को define करती हैं।
Location : src/user/dto/create-user.dto.ts
export class CreateUserDto {
readonly name: string;
readonly email: string;
readonly password: string;
}
अब UserController
में DTO
का use करते हैं ताकि incoming data को validate कर सकें।
Location : src/user/user.controller.ts
import { Controller, Post, Body } from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
@Controller('users')
export class UserController {
constructor(private readonly userService: UserService) {}
@Post()
createUser(@Body() createUserDto: CreateUserDto): Promise<User> {
return this.userService.create(createUserDto);
}
}
यहां CreateUserDto
को request body के लिए type के रूप में use किया गया है, जिससे data का structure define होता है।
●●●
Use DTOs for Data Validation : हमेशा incoming data का structure define और validate करने के लिए DTOs का use करें, ये data integrity maintain करने में help करता है।
Handle Errors Properly : जब database में records insert कर रहे हो, तो error handling
लगाएं . For example, अगर email field unique है और duplicate data आ रहा है, तो handle करें।
Use Migrations for Schema Changes : Development के लिए synchronize : true
ठीक है, लेकिन production में आप migrations का use करें ताकि schema changes को safely implement किया जा सके।
Separate Concerns : Business logic को services
में रखने कि habit डालें , और controllers को सिर्फ request/response handling के लिए use करें।