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 decorators एक powerful feature हैं जो आपको code को easily manage, reuse, और customize करने कि facility देते हैं।
Decorators basically metadata
को attach करते हैं और classes, methods, properties, या parameters को customize करने के लिए use होते हैं। NestJS में in-built
decorators के साथ आप custom decorators भी बना सकते हैं।
इस blog में हम NestJS decorators का concept, इनका use यह सब समझेंगे।
Decorators JavaScript का एक design pattern हैं जो classes, methods, properties, या parameters को modify करते हैं या उनमे metadata add करते हैं।
ये @
symbol के साथ declare किये जाते हैं और methods या classes के behavior को extend
करने का काम करते हैं।
Simpler terms में -
Decorators code के ऊपर एक extra layer हैं जो किसी class, method, या property के behavior को modify करते हैं।
यह mainly metadata को attach करने या manipulate करने के लिए use किये जाते हैं।
●●●
NestJS में काफी सारे in-built decorators होते हैं जो different levels पर apply किये जाते हैं : classes, methods, और parameters पर। ये decorators NestJS framework को बताते हैं कि particular method, class, या parameter कैसे behave करेगा।
यह class को एक controller define करता है , यह specify करता है कि इस class का काम HTTP
requests को handle करना होगा।
import { Controller } from '@nestjs/common';
@Controller('users')
export class UserController {
// Controller logic here
}
इस example में @Controller('users'), class को /users
route के साथ map करता है।
यह method को HTTP GET
request के साथ bind करता है।
import { Get } from '@nestjs/common';
@Controller('users')
export class UserController {
@Get()
findAll() {
return 'Returning all users!';
}
}
यह method को HTTP POST request के साथ bind करता है।
import { Post } from '@nestjs/common';
@Controller('users')
export class UserController {
@Post()
create() {
return 'Creating a new user!';
}
}
यह decorator HTTP route parameters को method parameters के साथ bind करता है।
For example, अगर आप id को URL
से extract करना चाहते हैं तो @Param()
का use होता है।
import { Param } from '@nestjs/common';
@Controller('users')
export class UserController {
@Get(':id')
findOne(@Param('id') id: string) {
return `User with id: ${id}`;
}
}
यह decorator HTTP request body
को method parameter के साथ bind करता है।
import { Body, Post } from '@nestjs/common';
@Controller('users')
export class UserController {
@Post()
create(@Body() createUserDto) {
return `User created: ${createUserDto}`;
}
}
यहां @Body()
decorator request body को createUserDto
parameter में inject करता है।
●●●
NestJS में काफी commonly used decorators होते हैं जो आपको request lifecycle को easily manage करने में help करते हैं।
कुछ commonly used decorators यह हैं -
@Query( ): HTTP query parameters को extract करता है।
@Headers() : HTTP headers को method के parameter के साथ map करता है।
@Req() : Complete HTTP request को method में inject करता है।
@Res() : Complete HTTP response को method में inject करता है।
import { Query, Get } from '@nestjs/common';
@Controller('users')
export class UserController {
@Get()
findAll(@Query('name') name: string) {
return `Searching for user with name: ${name}`;
}
}
यहां @Query('name')
decorator , query parameter name को extract करता है।
●●●
NestJS decorators
आपको application के different aspects को modular और reusable बनाने में help करते हैं , यह powerful feature है जो code को clean, maintainable, और easy-तो-read बनाता है।
जहाँ possible हो, NestJS के built-in decorators का use करें । Custom decorators सिर्फ तब बनाएं जब आपको complex या custom logic चाहिए।