Condivisione della tecnologia

Un'introduzione ai provider [NestJs] in un articolo

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Serie didattica Nest

✈️Inizia a utilizzare [NestJS] in un articolo
✈️Introduzione ai controller [NestJs] in un articolo

🚩 前言

Nel mondo di NestJS, comprendere i "provider" è la chiave per creare servizi backend robusti e mantenibili. NestJS, come framework moderno per Node.js, adotta alcuni concetti fondamentali di Angular, come Dependency Injection (DI), e li applica allo sviluppo lato server. Questo articolo approfondirà il meccanismo dei provider in NestJS, analizzerà come funziona e come utilizzarli per ottimizzare la tua applicazione.

🚩什么是 Providers

In NestJS, un provider è qualsiasi oggetto che può essere gestito e inserito dal contenitore DI. Può essere una classe, un valore, una funzione factory o un'interfaccia astratta. Il ruolo principale dei Provider è quello di fornire servizi, valori o fabbriche, che possono essere condivisi e riutilizzati da altri moduli o componenti.

Ho appreso del Controller di Nest nell'articolo precedente Questo articolo introduce un altro importante punto di conoscenza: i provider possono essere intesi come la parte del Controller che fornisce servizi e possono anche essere chiamati servizi.

🚩如何创建一个 service

notizie sul servizio nest g

Si tratta di un semplice servizio che attualmente ha due funzioni: una è restituire l'elenco di tutte le notizie, l'altra è creare un dato
Inserisci qui la descrizione dell'immagine
Inserisci qui la descrizione dell'immagine

🚩service如何为controller提供服务

iniezione di dipendenza

Il primo passo: introdurre il servizio corrispondente e il tipo di interfaccia corrispondente nel controller

notizie.controller.ts

import { NewsService } from './news.service';
import { News } from './interfaces/news.interface';
  • 1
  • 2

Passaggio 2: inserimento tramite il costruttore (private newsService: NewsService) {}

@Controller('news')
export class NewsController {
	constructor(private  newsService: NewsService) {}
	.....
}
  • 1
  • 2
  • 3
  • 4
  • 5

Passaggio 3: utilizzalo nel decoratore di richieste corrispondente

@Controller('news')
export class NewsController {
	constructor(private  newsService: NewsService) {}
 	@Get('/page')
	async getNewsPageList(@Query() query: string): Promise<News[]> {
        console.log(query);
        return this.newsService.getNewsPageList();
    }

   @Post('/create')
   async  createNews(@Body() createNewsDto: CreateNewsDto) {
        console.log(createNewsDto,'添加参数');
        return this.newsService.createNews(createNewsDto);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Passaggio 4: registrati su app.module

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { NewsController } from './news/news.controller';
import { NewsService } from './news/news.service';

@Module({
  imports: [],
  controllers: [AppController, NewsController],
  providers: [AppService,NewsService],
})
export class AppModule {}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Conclusione

Padroneggiare i provider in NestJS significa che puoi creare meglio servizi backend modulari e scalabili. Utilizzando correttamente i provider, è possibile gestire facilmente le dipendenze e migliorare la leggibilità e la manutenibilità del codice. Che tu stia creando un'architettura complessa di microservizi o un semplice servizio API, il meccanismo DI di NestJS sarà uno strumento indispensabile per te.