NestJs Tutorial with example in Hindi

 NestJS Tutorial in Hindi

NestJS एक आधुनिक, प्रोग्रेसिव Node.js framework है, जो TypeScript पर आधारित है। यह विशेष रूप से बड़े और स्केलेबल सर्वर-साइड एप्लिकेशंस (Backend) के निर्माण के लिए डिज़ाइन किया गया है। NestJS को Angular की तरह ही modularity और dependency injection की सुविधा प्रदान करने के लिए डिज़ाइन किया गया है, जिससे यह बड़े एप्लिकेशंस में बहुत काम आता है। NestJS का उपयोग करते समय, आपको Express.js का बेसिक ज्ञान होना चाहिए क्योंकि NestJS के पीछे Express.js होता है, लेकिन यह अतिरिक्त सुविधाएं और संरचनाएं प्रदान करता है।

इस ट्यूटोरियल में हम NestJS के बेसिक्स, इसकी संरचना, और इसके उपयोग से जुड़े उदाहरण देखेंगे।


NestJS क्या है?

NestJS एक open-source Node.js framework है जो server-side application के लिए एक scalable architecture प्रदान करता है। यह framework TypeScript पर आधारित है और इसके अंदर Express.js का उपयोग किया जाता है, लेकिन NestJS आपको dependency injection, decorators, और modularity जैसी सुविधाएं प्रदान करता है जो code को cleaner और maintainable बनाती हैं।

NestJS का मुख्य उद्देश्य बड़े और जटिल एप्लिकेशन्स के निर्माण में मदद करना है, जहाँ आपको code को साफ, modular और testable रखना पड़ता है।

NestJS की प्रमुख विशेषताएँ

  1. Modular Architecture: NestJS आपको एप्लिकेशन को छोटे, reusable modules में विभाजित करने की अनुमति देता है।
  2. TypeScript Support: NestJS पूर्ण रूप से TypeScript के साथ काम करता है, जो सख्त टाइपिंग और बेहतर code quality सुनिश्चित करता है।
  3. Dependency Injection: NestJS में dependency injection का सपोर्ट है, जिससे आपके ऐप्लिकेशन के components को loose coupling और बेहतर testability मिलती है।
  4. Built-in Support for Express: NestJS Express.js का उपयोग करता है, लेकिन यह आपको बहुत सारे सुविधाएँ प्रदान करता है जैसे middleware, routing, validation, आदि।
  5. Testing: NestJS testing को प्रोत्साहित करता है और इसमें jest जैसे testing frameworks के लिए built-in सपोर्ट है।
  6. Scalable and maintainable: बड़े एप्लिकेशनों के लिए यह framework ideal है क्योंकि इसमें modular architecture, controller, service और dependency injection जैसी सुविधाएं दी जाती हैं।

NestJS को स्थापित करना (Installation)

NestJS प्रोजेक्ट शुरू करने के लिए आपको Node.js और npm की आवश्यकता होगी। अगर आपने पहले से Node.js इंस्टॉल नहीं किया है, तो पहले उसे इंस्टॉल करें।

Step 1: NestJS CLI को इंस्टॉल करें

NestJS के साथ काम करने के लिए, NestJS CLI (Command Line Interface) का उपयोग किया जाता है। सबसे पहले, आपको CLI को ग्लोबली इंस्टॉल करना होगा:

bash
npm i -g @nestjs/cli

Step 2: नया NestJS प्रोजेक्ट बनाएँ

NestJS CLI का उपयोग करके एक नया प्रोजेक्ट बनाएँ:

bash
nest new project-name

यह कमांड एक नया NestJS प्रोजेक्ट बनाएगी और आपसे कुछ कॉन्फ़िगरेशन (जैसे कि पैकेज मैनेजर का चुनाव) के बारे में पूछा जाएगा।

Step 3: प्रोजेक्ट में जाएं

प्रोजेक्ट में जाने के लिए निम्नलिखित कमांड का उपयोग करें:

bash
cd project-name

Step 4: सर्वर को रन करें

NestJS एप्लिकेशन को चलाने के लिए, npm run start कमांड का उपयोग करें:

bash
npm run start

यह सर्वर http://localhost:3000 पर चलने लगेगा।


NestJS एप्लिकेशन की संरचना

NestJS एप्लिकेशन में निम्नलिखित मुख्य डायरेक्ट्रीज़ होती हैं:

  • src/: एप्लिकेशन का मुख्य सोर्स कोड।
    • app.controller.ts: HTTP अनुरोधों को हैंडल करने के लिए controller।
    • app.module.ts: मुख्य एप्लिकेशन module, जहां सभी अन्य modules और components को import किया जाता है।
    • app.service.ts: एप्लिकेशन की मुख्य लॉजिक।
  • node_modules/: सभी इंस्टॉल किए गए पैकेज।
  • package.json: प्रोजेक्ट के सभी डिपेंडेंसी और स्क्रिप्ट।
  • tsconfig.json: TypeScript के लिए कॉन्फ़िगरेशन फाइल।

NestJS के प्रमुख कॉम्पोनेंट्स

  1. Modules:

    • NestJS एप्लिकेशन modules में विभाजित होते हैं। एक module एप्लिकेशन के विभिन्न हिस्सों (जैसे controllers, services) को एक जगह पर समूहीकरण करने के लिए प्रयोग होता है। हर NestJS एप्लिकेशन कम से कम एक module (AppModule) में होता है।
  2. Controllers:

    • Controllers HTTP अनुरोधों (GET, POST, PUT, DELETE आदि) को हैंडल करते हैं। Controllers HTTP से संबंधित होते हैं और रूटिंग के लिए उपयोग किए जाते हैं।
  3. Services:

    • Services ऐप्लिकेशन के business logic को हैंडल करते हैं। ये controllers से जुड़कर काम करते हैं। Service को किसी अन्य service के द्वारा भी उपयोग किया जा सकता है।
  4. Providers:

    • Providers NestJS में injectable होते हैं, जो services, repositories, helpers, और अन्य components होते हैं जिन्हें dependency injection के जरिए इस्तेमाल किया जा सकता है।

Basic NestJS Example

अब हम एक साधारण API बनाएंगे, जो एक GET और POST request को हैंडल करेगा। इसमें हम controller और service का उपयोग करेंगे।

1. Controller (app.controller.ts)

Controller वह स्थान है जहां HTTP अनुरोधों (requests) को हैंडल किया जाता है। हम इसे @Controller() डेकोरेटर से परिभाषित करते हैं।

typescript
import { Controller, Get, Post, Body } from '@nestjs/common'; import { AppService } from './app.service'; @Controller() export class AppController { constructor(private readonly appService: AppService) {} @Get() getHello(): string { return this.appService.getHello(); } @Post() createData(@Body() data: any): string { return this.appService.createData(data); } }

यहां @Get() और @Post() डेकोरेटर HTTP GET और POST अनुरोधों के लिए हैंडलर्स हैं। @Body() डेकोरेटर का उपयोग POST डेटा को प्राप्त करने के लिए किया जाता है।

2. Service (app.service.ts)

Service वह स्थान है जहां business logic रहता है। हम इसे @Injectable() डेकोरेटर से परिभाषित करते हैं।

typescript
import { Injectable } from '@nestjs/common'; @Injectable() export class AppService { getHello(): string { return 'Hello World!'; } createData(data: any): string { return `Data received: ${JSON.stringify(data)}`; } }

यहां getHello() method एक साधारण संदेश भेजता है, जबकि createData() method POST request से प्राप्त डेटा को रिसीव करता है।

3. Module (app.module.ts)

AppModule वह मुख्य स्थान है जहां सभी controllers और services को import किया जाता है।

typescript
import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; @Module({ imports: [], controllers: [AppController], providers: [AppService], }) export class AppModule {}

यहां controllers में AppController और providers में AppService जोड़ा गया है।


NestJS में Middleware का उपयोग

Middleware एप्लिकेशन में incoming requests के पहले execute होते हैं। हम middleware को @Middleware() डेकोरेटर के द्वारा सेट कर सकते हैं।

typescript
import { Injectable, NestMiddleware } from '@nestjs/common'; import { Request, Response, NextFunction } from 'express'; @Injectable() export class LoggerMiddleware implements NestMiddleware { use(req: Request, res: Response, next: NextFunction) { console.log('Request...'); next(); } }

अब इस middleware को module में रजिस्टर करें:

typescript
import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common'; import { LoggerMiddleware } from './logger.middleware'; @Module({ imports: [], controllers: [], providers: [], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(LoggerMiddleware).forRoutes('*'); } }

यह middleware हर incoming request के लिए लॉग करेगा।


NestJS Testing

NestJS में Jest का उपयोग करके टेस्टिंग की जाती है। NestJS CLI द्वारा testing setup ऑटोमेटिकली किया जाता है।

Example:

bash
npm run test

यह कमांड सभी टेस्ट्स को रन करेगा।


निष्कर्ष

NestJS एक शक्तिशाली और स्केलेबल Node.js framework है जो TypeScript का समर्थन करता है। यह आपकी एप्लिकेशन के लिए साफ, maintainable और scalable architecture प्रदान करता है। NestJS में Modules, Controllers, Services, और Dependency Injection जैसी सुविधाएं हैं, जो बड़े एप्लिकेशनों के निर्माण के लिए बहुत सहायक होती हैं। इस ट्यूटोरियल में हमने NestJS के प्रमुख कॉम्पोनेंट्स और एक साधारण REST API उदाहरण देखा।

NestJS का उपयोग करते हुए, आप उच्च गुणवत्ता, स्थिरता, और maintainability वाली backend एप्लिकेशन आसानी से बना सकते हैं।

Comments

Popular posts from this blog

PrimeNG tutorial with examples using frequently used classes

Docker and Kubernetes Tutorials and QnA

oAuth in angular