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 एक 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 करते हैं।
●●●
Controllers कि main responsibility request-response cycle को manage करना होती है। जब client कोई request send करता है, तो controller उस request को handle करता है और response back करता है।
यह एक web application के core architecture का एक बहुत ही important component है।
Controllers को define करने का basic syntax कुछ इस तरह होता है -
import { Controller, Get } from '@nestjs/common';
@Controller('example')
export class ExampleController {
@Get()
findAll(): string {
return 'Yeh response aapko milega!';
}
}
@Controller('example')
decorator define करता है कि यह controller किस route को handle करेगा।
@Get()
एक HTTP GET request को handle करता है , इस function को जब भी GET request आएगी तब call किया जायेगा।
●●●
NestJS में controller को समझने के लिए, पहले यह जानना जरूरी है कि कौनसे decorators
और components इसके core में काम करते हैं।
यह decorator specify करता है कि यह class एक controller है।
इसके अंदर आप optional route path define कर सकते हैं, जो सारे actions के लिए prefix ban जाता है।
@Controller('users')
export class UserController {}
अगर कोई request /users
route के लिए आती है, तो यह controller उसको handle करेगा।
यह HTTP
methods को specify करते हैं , NestJS automatically routing method के basis पर request को handle करता है।
@Get('profile')
getProfile(): string {
return 'User Profile';
}
अगर /users/profile
पर कोई GET request आएगी , तो यह method execute होगा।
Controllers में route parameters, query parameters, body data को कैसे handle किया जाता है, यह भी जरूरी part है।
@Get(':id')
findOne(@Param('id') id: string) {
return `User with ID: ${id}`;
}
इस example में, अगर /users/5
route hit होता है, तो id का value '5' होगा।
@Post()
create(@Body() createUserDto: CreateUserDto) {
return 'User created!';
}
यह method HTTP POST request का data handle करेगा जो body के through send किया गया है।
●●●
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 हो सके।
●●●
NestJS में controllers एक fundamental component है, जो request-response lifecycle
को handle करता है। अगर आप एक scalable backend application banana चाहते हैं, तो controllers का ठीक से structure और use करना जरूरी है।
NestJS के powerful decorators और tools से आप अपने controllers को काफी flexible और manageable बना सकते हैं।
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 करेंगे।