NestJS का परिचय
NestJS (Nest) Node.js पर कुशल, स्केलेबल और विश्वसनीय सर्वर-साइड एप्लिकेशन बनाने के लिए एक प्रोग्रेसिव फ्रेमवर्क है। यह TypeScript को मुख्य भाषा के रूप में उपयोग करता है और Angular की आर्किटेक्चर से प्रेरित है। NestJS एक तैयार एप्लिकेशन आर्किटेक्चर प्रदान करता है जो डेवलपर्स को अच्छी तरह से संरचित, टेस्ट करने योग्य और मेंटेन करने योग्य कोड लिखने में मदद करता है।
NestJS का मुख्य उद्देश्य Node.js इकोसिस्टम में स्पष्ट आर्किटेक्चर की कमी की समस्या को हल करना है। Express या Fastify के विपरीत, जो न्यूनतम हैं और कोई संरचना नहीं थोपते, NestJS तैयार एब्स्ट्रैक्शन प्रदान करता है: मॉड्यूल, कंट्रोलर, सर्विस, प्रोवाइडर और मिडलवेयर। यह विशेष रूप से बड़े एंटरप्राइज प्रोजेक्ट्स के लिए उपयोगी है जहां कोड की पूर्वानुमान और मानकीकरण महत्वपूर्ण है।
NestJS HTTP फ्रेमवर्क (डिफ़ॉल्ट रूप से Express, लेकिन Fastify का भी उपयोग किया जा सकता है) के ऊपर बनाया गया है और इसमें एक शक्तिशाली डिपेंडेंसी इंजेक्शन सिस्टम, डेकोरेटर, Guards, Interceptors, Pipes और Filters जोड़ता है। फ्रेमवर्क TypeScript डेकोरेटर का सक्रिय रूप से उपयोग करता है, जो कोड को डिक्लेरेटिव और पढ़ने में आसान बनाता है।
NestJS इंस्टॉलेशन
NestJS इंस्टॉल करने के लिए आपको Node.js (वर्जन 16 या उससे ऊपर) और एक पैकेज मैनेजर (npm, yarn, या pnpm) की आवश्यकता होगी।
शुरू करने का सबसे आसान तरीका Nest CLI का उपयोग करना है:
npm install -g @nestjs/cli
nest new my-nest-project
cd my-nest-project
npm run start:dev
यदि आप किसी मौजूदा प्रोजेक्ट में NestJS इंस्टॉल करना चाहते हैं:
npm install @nestjs/core @nestjs/common @nestjs/platform-express reflect-metadata rxjs typescript @types/node
डेवलपमेंट के लिए TypeScript और ts-node भी इंस्टॉल करना होगा:
npm install -D typescript @types/node ts-node
महत्वपूर्ण: NestJS डेकोरेटर के साथ काम करने के लिए reflect-metadata लाइब्रेरी का उपयोग करता है। सुनिश्चित करें कि इसे मुख्य फ़ाइल main.ts में इम्पोर्ट किया गया है:
import "reflect-metadata";
कोड उदाहरण के साथ त्वरित शुरुआत
चलिए एक सरल REST API एप्लिकेशन बनाते हैं जिसमें एक एंडपॉइंट होगा जो ग्रीटिंग लौटाता है।
प्रोजेक्ट संरचना:
src/
├── app.controller.ts
├── app.module.ts
├── app.service.ts
└── main.ts
main.ts — एंट्री पॉइंट:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
console.log('Server is running on http://localhost:3000');
}
bootstrap();
app.module.ts — रूट मॉड्यूल:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
app.controller.ts — कंट्रोलर:
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
app.service.ts — सर्विस (बिज़नेस लॉजिक):
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!';
}
}
एप्लिकेशन को npm run start:dev कमांड से चलाएं और http://localhost:3000 खोलें। आपको "Hello World!" दिखाई देगा।
NestJS के मुख्य तरीके और फंक्शन
आइए NestJS के 10 प्रमुख एलिमेंट्स पर नज़र डालते हैं जो हर प्रोजेक्ट में उपयोग होते हैं।
1. @Module() — मॉड्यूल डेकोरेटर
क्या करता है: क्लास को NestJS मॉड्यूल के रूप में परिभाषित करता है। मॉड्यूल कंट्रोलर, सर्विस और अन्य मॉड्यूल के लिए एक कंटेनर है। यह ऑर
पुस्तकालय में भी
Swift (iOS/macOS) के लिए ORM: तुलना और उपयोग उदाहरण
Kotlin एप्लिकेशन मॉनिटरिंग: Ktor Metrics और Micrometer लाइब्रेरी
Rust अनुप्रयोगों की निगरानी: उपकरणों और पुस्तकालयों का अवलोकन