顯示具有 Swagger 標籤的文章。 顯示所有文章
顯示具有 Swagger 標籤的文章。 顯示所有文章

2024/11/16

Implementing Global HTTP Status 200 Response in NestJS

根據不同的 HTTP 方法,NestJS 會自動設置對應的 HTTP 狀態碼,但基於特定需求,我會另作考量和調整
import {
    CallHandler,
    ExecutionContext,
    Injectable,
    NestInterceptor
} from '@nestjs/common'
import { Observable } from 'rxjs'
import { Response } from 'express'

/**
 * Response Interceptor
 * @class {ResponseInterceptor}
 * @implements {NestInterceptor}
 */
@Injectable()
export class ResponseInterceptor implements NestInterceptor {
    /**
     * Intercept
     * @param context {ExecutionContext} - 執行上下文
     * @param next {CallHandler} - 呼叫處理程序
     * @return {Observable} 返回 Observable
     */
    intercept(context: ExecutionContext, next: CallHandler): Observable {
        // 取得 Http 上下文
        const contextHttp = context.switchToHttp()
        // 取得 Response 物件
        const response: Response = contextHttp.getResponse()
        // 設定成Http Status 200
        response.status(200)

        return next.handle()
    }
}
main.ts