小编too*_*ijp的帖子

NestJS 在拦截器中设置 HttpStatus

我正在使用拦截器来转换我的响应。我想设置HttpStatus内部,但我现在使用的代码不起作用。

import { CallHandler, ExecutionContext, NestInterceptor, SetMetadata } from '@nestjs/common';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { classToPlain } from 'class-transformer';
import { ApiResponse } from '../models/apiResponse';

export class TransformInterceptor implements NestInterceptor {
  intercept(
    context: ExecutionContext,
    next: CallHandler<ApiResponse | any>,
  ): Observable<ApiResponse | any> {
    return next.handle().pipe(
      map(data => {
        const http = context.switchToHttp();
        const res = http.getResponse();

        if(data instanceof ApiResponse) {
          if(data.status !== undefined) {
            res.status(data.status);
          }
        }

        return classToPlain(data); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript nestjs fastify

5
推荐指数
1
解决办法
6839
查看次数

标签 统计

fastify ×1

javascript ×1

nestjs ×1

node.js ×1

typescript ×1