NestJs MySQL Connection with TypeORM


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 देखेंगे।

What is TypeORM ?

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 करता है।

TypeORM Advantages -

  • Object-Oriented Programming (OOP) principles का use करते hue SQL operations perform कर सकते हैं।

  • Automatic Migrations और Schema Synchronization का support .

  • Strong TypeScript integration के साथ clean code लिखना।

Prerequisites

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
MySQL Setup In NestJS

चलिए अब NestJS application बनाते हैं और उससे MySQL के साथ connect करते हैं , हम NestJS CLI का use करेंगे एक new project create करने के लिए।

nest new nest-mysql-app

इसके बाद, TypeORM और MySQL के packages install करें (as mentioned above).

NestJs TypeORM Configuration

TypeORM को configure करने के लिए आपको TypeOrmModule को import करना होगा और database connection setup करना होगा।

Step 1 : Add TypeORM Configuration

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 करता है।

Create Entity For MySQL In NestJs

Entities NestJS में MySQL tables को represent करती हैं, हर entity एक class होती है जिसमे TypeORM decorators का use करके columns और relationships define किये जाते हैं।

चलिए एक User entity बनाते हैं जो हमारे database में users table को represent करेगी।

Step 2 : Create User Entity

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 करते हैं।

NestJs MySQL Best Practices

  • 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 करें।

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook