相关疑难解决方法(0)

在 Nest.js 中发送之前如何格式化响应?

我遵循了文档,并且能够为响应映射添加一个拦截器。

我想要一个一致的 json 格式输出用于响应。

我如何使用拦截器或其他比这种方法更好的方法来实现这一点。

{
  "statusCode": 201,
  "message": "Custom Dynamic Message"
  "data": {
     // properties
     meta: {}
  }
}
Run Code Online (Sandbox Code Playgroud)

transform.interceptor.ts

import {
  Injectable,
  NestInterceptor,
  ExecutionContext,
  CallHandler,
} from '@nestjs/common';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

export interface Response<T> {
  statusCode: number;
  data: T;
}

@Injectable()
export class TransformInterceptor<T>
  implements NestInterceptor<T, Response<T>> {
  intercept(
    context: ExecutionContext,
    next: CallHandler,
  ): Observable<Response<T>> {
    return next
      .handle()
      .pipe(
        map((data) => ({
          statusCode: context.switchToHttp().getResponse().statusCode,
          data,
        })),
      );
  } …
Run Code Online (Sandbox Code Playgroud)

javascript typescript nestjs

11
推荐指数
1
解决办法
7741
查看次数

标签 统计

javascript ×1

nestjs ×1

typescript ×1