技術共有

[NestJs] プロバイダーを 1 つの記事で紹介

2024-07-12

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

ネスト学習シリーズ

✈️1 つの記事で [NestJS] を始めましょう
✈️[NestJs] コントローラーを 1 つの記事で紹介

🚩 前言

NestJS の世界では、「プロバイダー」を理解することが、堅牢で保守可能なバックエンド サービスを構築するための鍵となります。 NestJS は、Node.js の最新のフレームワークとして、Dependency Injection (DI) などの Angular のいくつかのコア概念を採用し、サーバーサイド開発に適用します。この記事では、NestJS のプロバイダー メカニズムを詳しく掘り下げ、その仕組みを分析し、アプリケーションを最適化するためにプロバイダーを使用する方法を説明します。

🚩什么是 Providers

NestJS では、プロバイダーは DI コンテナーによって管理および挿入できる任意のオブジェクトです。クラス、値、ファクトリ関数、または抽象インターフェイスを指定できます。 プロバイダーの主な役割は、他のモジュールやコンポーネントによって共有および再利用できるサービス、値、またはファクトリーを提供することです。

前回の記事で Nest のコントローラーについて学びました。この記事では、もう 1 つの重要な知識ポイントを紹介します。プロバイダーは、サービスを提供するコントローラーの一部として理解でき、サービスと呼ぶこともできます。

🚩如何创建一个 service

ネストGサービスニュース

これは現在 2 つの機能を備えた単純なサービスです。1 つはすべてのニュースのリストを返すこと、もう 1 つはデータを作成することです。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

🚩service如何为controller提供服务

依存性注入

最初のステップ: 対応するサービスと対応するインターフェイス タイプをコントローラーに導入します。

ニュース.コントローラ.ts

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

ステップ 2: コンストラクターを介して挿入する(private newsService: NewsService) {}

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

ステップ 3: 対応するリクエスト デコレータで使用する

@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

ステップ 4: 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

結論

NestJS でプロバイダーをマスターすると、モジュール式でスケーラブルなバックエンド サービスをより適切に構築できるようになります。プロバイダーを適切に使用すると、依存関係を簡単に管理し、コードの可読性と保守性を向上させることができます。複雑なマイクロサービス アーキテクチャを構築する場合でも、単純な API サービスを構築する場合でも、NestJS の DI メカニズムは不可欠なツールになります。