NestJS Controllers Structure : Create Controllers In NestJS In Hindi

📔 : NestJS Tutorials 🔗

NestJS एक progressive Node.js framework है जो TypeScript के ऊपर build किया गया है। यह MVC (Model-View-Controller) architecture follow करता है, जिसमें controllers काफी important role play करते हैं।

Controllers basically request handling के लिए responsible होते हैं। यह requests को receive करते हैं और फिर उन्हें appropriate services या components तक route करते हैं।

Controllers आपके application के endpoints को define करते हैं और client requests के लिए responses provide करते हैं।

Need of Controllers In NestJS

Controllers कि main responsibility request-response cycle को manage करना होती है। जब client कोई request send करता है, तो controller उस request को handle करता है और response back करता है।

यह एक web application के core architecture का एक बहुत ही important component है।

NestJS Create Controller

Controllers को define करने का basic syntax कुछ इस तरह होता है -

import { Controller, Get } from '@nestjs/common'; @Controller('example') export class ExampleController { @Get() findAll(): string { return 'Yeh response aapko milega!'; } }
Explanation
  • @Controller('example') decorator define करता है कि यह controller किस route को handle करेगा।

  • @Get() एक HTTP GET request को handle करता है , इस function को जब भी GET request आएगी तब call किया जायेगा।

NestJS Controller's Structure

NestJS में controller को समझने के लिए, पहले यह जानना जरूरी है कि कौनसे decorators और components इसके core में काम करते हैं।

1. NestJS @Controller() Decorator

  • यह decorator specify करता है कि यह class एक controller है।

  • इसके अंदर आप optional route path define कर सकते हैं, जो सारे actions के लिए prefix ban जाता है।

@Controller('users') export class UserController {}

अगर कोई request /users route के लिए आती है, तो यह controller उसको handle करेगा।

2. NestJS Routing Methods (@Get, @Post, @Put, @Delete)

यह HTTP methods को specify करते हैं , NestJS automatically routing method के basis पर request को handle करता है।

@Get('profile') getProfile(): string { return 'User Profile'; }

अगर /users/profile पर कोई GET request आएगी , तो यह method execute होगा।

3. NestJS Parameters Handling

Controllers में route parameters, query parameters, body data को कैसे handle किया जाता है, यह भी जरूरी part है।

NestJS @Param()

@Get(':id') findOne(@Param('id') id: string) { return `User with ID: ${id}`; }

इस example में, अगर /users/5 route hit होता है, तो id का value '5' होगा।

NestJS @Body()

@Post() create(@Body() createUserDto: CreateUserDto) { return 'User created!'; }

यह method HTTP POST request का data handle करेगा जो body के through send किया गया है।

Best Practices for NestJS Controllers

Single Responsibility Principle : Controllers को हमेशा एक single responsibility का ध्यान रखते hue design करना चाहिए। अगर controller में काफी सारी logic है, तो इससे service layer में move कर देना चाहिए।

Modular Approach : आपके controllers को logically modules में divide करना चाहिए। जैसे users के लिए UserController, products के लिए ProductController, etc.

Error Handling : Proper error handling implement करना बहुत जरूरी है , NestJS में built-in exceptions काफी useful होते हैं।

For example

throw new HttpException('Forbidden', HttpStatus.FORBIDDEN);

DTOs का Use : Data Transfer Objects (DTOs) का use करना best practice होता है, ताकि data का validation और structuring efficiently हो सके।

Conclusion

NestJS में controllers एक fundamental component है, जो request-response lifecycle को handle करता है। अगर आप एक scalable backend application banana चाहते हैं, तो controllers का ठीक से structure और use करना जरूरी है।

NestJS के powerful decorators और tools से आप अपने controllers को काफी flexible और manageable बना सकते हैं।

Key Points -
  • Controllers NestJS applications के endpoints को define करते हैं।

  • यह incoming HTTP requests को handle करते हैं और appropriate responses send हैं।

  • @Controller और different HTTP methods जैसे @Get, @Post controllers को define करते हैं।

  • Dependency injection से services को controllers में inject करके, हम request lifecycle को और भी effectively manage कर सकते हैं।

Note* इस topic में discuss की गयी कुछ बातें advance हैं जिन्हे हम आगे discuss करेंगे।

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