国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - nestjs返回給前端數(shù)據(jù)格式的封裝實現(xiàn)

nestjs返回給前端數(shù)據(jù)格式的封裝實現(xiàn)

2022-01-22 18:55水痕01 js教程

這篇文章主要介紹了nestjs返回給前端數(shù)據(jù)格式的封裝實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一般開發(fā)過程中不不會根據(jù)httpcode來判斷接口請求成功與失敗的,而是會根據(jù)請求返回的數(shù)據(jù),里面加上code字段

一、返回的數(shù)據(jù)格式對比

1、直接返回的數(shù)據(jù)格式

?
1
2
3
4
5
6
7
8
9
{
  "id": 1,
  "uuid": "cbbe7abc-b95e-48a0-8d24-b1ac93c45328",
  "name": "哈士奇1",
  "age": 12,
  "color": null,
  "createAt": "2019-07-25T09:13:30.000Z",
  "updateAt": "2019-07-25T09:13:30.000Z"
}

2、我們自己包裝后的返回數(shù)據(jù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
{
 code: 0,
 message: "請求成功",
 data: {
  "id": 1,
  "uuid": "cbbe7abc-b95e-48a0-8d24-b1ac93c45328",
  "name": "哈士奇1",
  "age": 12,
  "color": null,
  "createAt": "2019-07-25T09:13:30.000Z",
  "updateAt": "2019-07-25T09:13:30.000Z"
 }
}

二、攔截全部的錯誤請求,統(tǒng)一返回格式

1、使用命令創(chuàng)建一個過濾器

?
1
nest g f filters/httpException

2、過濾器的代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import {
 ArgumentsHost,
 Catch,
 ExceptionFilter,
 HttpException,
 HttpStatus,
 Logger,
} from '@nestjs/common';
 
@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {
 catch(exception: HttpException, host: ArgumentsHost) {
  const ctx = host.switchToHttp();
  const response = ctx.getResponse();
  const request = ctx.getRequest();
 
  const message = exception.message.message;
  Logger.log('錯誤提示', message);
  const errorResponse = {
   data: {
    error: message,
   }, // 獲取全部的錯誤信息
   message: '請求失敗',
   code: 1, // 自定義code
   url: request.originalUrl, // 錯誤的url地址
  };
  const status =
   exception instanceof HttpException
    ? exception.getStatus()
    : HttpStatus.INTERNAL_SERVER_ERROR;
  // 設置返回的狀態(tài)碼、請求頭、發(fā)送錯誤信息
  response.status(status);
  response.header('Content-Type', 'application/json; charset=utf-8');
  response.send(errorResponse);
 }
}

3、在main.ts中全局注冊

?
1
2
3
4
5
6
7
8
9
...
import { HttpExceptionFilter } from './filters/http-exception.filter';
 
async function bootstrap() {
 ...
 // 全局注冊錯誤的過濾器
 app.useGlobalFilters(new HttpExceptionFilter());
}
bootstrap();

4、測試,返回的錯誤信息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
 "statusCode": 400,
 "error": "Bad Request",
 "data": {
  "message": [
   {
    "age": "必須的整數(shù)"
   }
  ]
 },
 "message": '請求失敗',
 "code": 1,
 "url": "/api/v1/cat"
}

三、統(tǒng)一請求成功的返回數(shù)據(jù)

1、創(chuàng)建一個攔截器src/interceptor/transform.interceptor.ts

2、攔截器的代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import {
 Injectable,
 NestInterceptor,
 CallHandler,
 ExecutionContext,
} from '@nestjs/common';
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs';
interface Response<T> {
 data: T;
}
@Injectable()
export class TransformInterceptor<T>
 implements NestInterceptor<T, Response<T>> {
 intercept(
  context: ExecutionContext,
  next: CallHandler<T>,
 ): Observable<Response<T>> {
  return next.handle().pipe(
   map(data => {
    return {
     data,
     code: 0,
     message: '請求成功',
    };
   }),
  );
 }
}

3、全局注冊

?
1
2
3
4
5
6
7
8
9
10
...
import { TransformInterceptor } from './interceptor/transform.interceptor';
 
async function bootstrap() {
 ...
 // 全局注冊攔截器
 app.useGlobalInterceptors(new TransformInterceptor());
 ...
}
bootstrap();

4、測試返回數(shù)據(jù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
{
 "data": {
  "id": 1,
  "uuid": "cbbe7abc-b95e-48a0-8d24-b1ac93c45328",
  "name": "哈士奇1",
  "age": 12,
  "color": null,
  "createAt": "2019-07-25T09:13:30.000Z",
  "updateAt": "2019-07-25T09:13:30.000Z"
 },
 "code": 0,
 "message": "請求成功"
}

到此這篇關于nestjs返回給前端數(shù)據(jù)格式的封裝實現(xiàn)的文章就介紹到這了,更多相關nestjs返回給前端數(shù)據(jù)格式內(nèi)容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/kuangshp128/article/details/97240664

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久99999| 午夜国产影院 | 精品国产污网站污在线观看15 | 操少妇逼视频 | 欧美日韩国产在线 | 国产精品一区三区 | 婷婷在线免费视频 | 在线国产视频 | 激情五月婷婷av | 亚洲视频一区二区三区 | 一级二级黄色大片 | 欧美成人精品一区二区 | 国产精品黄色 | 色猫猫国产区一区二在线视频 | 在线观看国产一区二区 | 亚洲成人福利网 | av免费网站在线观看 | 免费在线黄色电影 | 黄色免费在线看 | 久久一区 | 中文字幕视频在线观看 | 先锋影音av中文字幕 | 色综合色综合网色综合 | 国产福利二区 | 91精品国产91久久久久久 | 毛片无码国产 | 亚洲一区二区三区在线 | 91精品国产综合久久久久久 | 午夜私人影院 | 午夜精品在线 | 久久综合九色 | 久久99精品视频 | 久久久久综合视频 | 中文字幕在线导航 | 噜噜噜噜噜色 | 毛片网站大全 | 国产成人片 | 中文字幕电影在线 | 嫩草精品| 午夜激情影院 | 国产色区 |