Compartilhamento de tecnologia

Uma introdução aos provedores [NestJs] em um artigo

2024-07-12

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

Série de aprendizagem Nest

✈️Comece a usar [NestJS] em um artigo
✈️Introdução aos controladores [NestJs] em um artigo

🚩 前言

No mundo do NestJS, compreender os “Provedores” é a chave para construir serviços de back-end robustos e sustentáveis. NestJS, como uma estrutura moderna para Node.js, adota alguns conceitos básicos do Angular, como Injeção de Dependência (DI), e os aplica ao desenvolvimento do lado do servidor. Este artigo irá se aprofundar no mecanismo de Provedores no NestJS, analisar como ele funciona e como usá-los para otimizar seu aplicativo.

🚩什么是 Providers

No NestJS, um Provedor é qualquer objeto que pode ser gerenciado e injetado pelo contêiner DI. Pode ser uma classe, um valor, uma função de fábrica ou uma interface abstrata. A principal função dos Provedores é fornecer serviços, valores ou fábricas, que podem ser compartilhados e reaproveitados por outros módulos ou componentes.

Aprendi sobre o Controlador da Nest no artigo anterior. Este artigo apresenta outro ponto importante de conhecimento: provedores podem ser entendidos como a parte do Controlador que fornece serviços, e também podem ser chamados de serviços.

🚩如何创建一个 service

notícias do serviço nest g

Este é um serviço simples que atualmente possui duas funções: uma é retornar uma lista de todas as notícias e a outra é criar um dado
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

🚩service如何为controller提供服务

Injeção de dependência

A primeira etapa: introduza o serviço correspondente e o tipo de interface correspondente no controlador

notícias.controller.ts

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

Etapa 2: injetar por meio do construtor(private newsService: NewsService) {}

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

Etapa 3: use-o no decorador de solicitação correspondente

@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

Etapa 4: registre-se em 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

Conclusão

Dominar provedores no NestJS significa que você pode construir melhor serviços de back-end modulares e escalonáveis. Ao usar os provedores corretamente, você pode gerenciar facilmente as dependências e melhorar a legibilidade e a manutenção do código. Esteja você construindo uma arquitetura de microsserviço complexa ou um serviço de API simples, o mecanismo DI do NestJS será uma ferramenta indispensável para você.