2.nest構造-コントローラ、provider
nestの構造はexpressに似ている. controller service(provider) dto ... Controller-HTTPリクエストに応答する役割のクラスを処理し、サービスで実際のロジックを処理します.
この中の
生成者によって
また,エラー処理を行うためにnestのloggerをインポートすることができる.
expressとは違って、固定的なルールがあるようです.
httpメソッドget関数が
コントローラは、実際の論理を実行することなく、クライアントからの要求をサービスで処理して応答する機能を有する.
Services-controller応答の具体的な論理
これは
promiseオブジェクトの非同期処理を返すことで、実際にクライアントに送信された値を返します.
provider
providerはほとんどの論理を処理します.ユーザ認証:Guards クライアントから送信されたデータフィルタ:Pipes ビジネスロジック:Service or Handler 異常処理:Exception Filters Porvider処理中、上記の操作を実行しない場合:Interceptor ミドルウェア:Expressミッドレンジと同じ
ミドルウェアを通過した後、ユーザーがアクセス可能なユーザーであることを確認します.(Guards)
その後、Pipesはクライアントから送信されたデータを処理します.たとえばstring->number(Pipes)
次に、対応するデータのビジネスロジックを実行します.(Handler, serivce)
例外処理を行う.(Exception Filters)
// hello.controller.ts
import { Controller, Get, Param, Logger } from '@nestjs/common';
import { HelloService } from './hello.service';
@Controller('hello')
export class HelloController {
constructor(private readonly helloService: HelloService) {}
logger: Logger = new Logger(HelloController.name);
@Get()
async showing(): Promise<string> {
try {
return this.helloService.showing();
} catch (error) {
this.logger.error(error?.message ?? '');
throw error;
}
}
@Get('/:content')
async reShowing(@Param('content') content: string): Promise<string> {
try {
return this.helloService.reShowing(content);
} catch (error) {
this.logger.error(error?.message ?? '');
}
}
}
コントローラの@Controller() annotation
であることを示します.この中の
'hello'
はルートを表しています.localhost:30000/hello
です.生成者によって
helloService
が注入される.これはDIと言いますが、後で確認します.また,エラー処理を行うためにnestのloggerをインポートすることができる.
expressとは違って、固定的なルールがあるようです.
httpメソッドget関数が
@Get() annotation
で表示され、パラメータ値が同時に追加されます.コントローラは、実際の論理を実行することなく、クライアントからの要求をサービスで処理して応答する機能を有する.
Services-controller応答の具体的な論理
import { Injectable } from '@nestjs/common';
@Injectable()
export class HelloService {
async showing(): Promise<string> {
return 'here is for hello page';
}
async reShowing(content: string): Promise<string> {
return `${content} is re showing !!!`;
}
}
サービスであることを示すために、@Injectable annotation
と明記してください.これは
종속성을 주입할 수 있는 클래스 입니다 - provider
を意味する.promiseオブジェクトの非同期処理を返すことで、実際にクライアントに送信された値を返します.
provider
providerはほとんどの論理を処理します.
ミドルウェアを通過した後、ユーザーがアクセス可能なユーザーであることを確認します.(Guards)
その後、Pipesはクライアントから送信されたデータを処理します.たとえばstring->number(Pipes)
次に、対応するデータのビジネスロジックを実行します.(Handler, serivce)
例外処理を行う.(Exception Filters)
Reference
この問題について(2.nest構造-コントローラ、provider), 我々は、より多くの情報をここで見つけました https://velog.io/@jaymee/2.-nest-구조-controller-serviceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol