" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nest.js Controller路由和請求處理強大功能解析

 更新時間:2023年12月06日 09:55:03   作者:程序員HaiJun  
這篇文章主要為大家,介紹了Nest.js Controller路由和請求處理強大功能解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Controller

Controller  它 主要是負責 特定路由請求處理并將響應結果返回給客戶端。

每個控制器 它會有多個路由,不同路由對應不同的業(yè)務請求處理。

在 Nest  中, 創(chuàng)建一個 控制器,應該使用類 和 裝飾器 , 裝飾器會使類相關聯(lián)的數(shù)據(jù)的關聯(lián)起來,將請求綁定到相應的控制器。

可以使用Nest-cli 提供的指令 快速創(chuàng)建一個 CURD

nest g resource [name]

路由

@Controller  是 Nest 的基本控制器,通過修飾器 @Controller  可以將路由分組,模塊化進行路由的管理,并最大限度的減少了代碼重復性。

路由的 形成 :

控制器裝飾器前綴@Controller('user')  +
請求方法裝飾器結合 @Get('getDeatil')

將形成路由映射user/getDeatail

如何進行路由分組呢?

@Controller 接受一個參數(shù),這可參數(shù)可選,默認如果不傳,  就是 /

@Controller(分組名)

import { Controller, Get, Param, Post } from '@nestjs/common';
import { UserService } from '../service/index';
const result: Object = {
  code: 200,
  data: {
    str: '微信公眾號:前端自學社區(qū)',
    arrList: [1, 2, 3, 4],
  },
};
@Controller('user')
export class UserController {
  // 使用依賴注入的方式注入一個類
  constructor(private readonly userService: UserService) {}
  @Get('getUserInfo') // 定義http的請求方式為get請求
  getUserInfo(): object {
    // 函數(shù)名可以隨便定義
    return this.userService.getUserInfo(result); // 控制層調用服務層的getHello()方法
  }
}

通過 訪問 http://localhost:3000/user/getUserInfo  就可以訪問到響應數(shù)據(jù)。

@Controller 裝飾器 修飾 類,該類就擁有和裝飾器關聯(lián)的屬性和功能,傳遞了一個參數(shù)  user ,  說明當前路由分組名稱為 user , 當前類下的所有基準路由都是 /user/  開頭了。

通過 HTTP 請求方法裝飾器  修飾方法,它會方法告訴 Nest 為 HTTP 請求的特定端點創(chuàng)建處理程序。

栗子中,getUserInfo  方法被 @Get 所修飾,所以它是一個 Get 請求。

請求參數(shù)裝飾器

通過對客戶端發(fā)起的請求參數(shù)做解析處理,Nest 提供的訪問請求對象 默認方式為 express .

@Get('getQueryUser:id')
  getQueryUser(@Param() params) {
    return this.userService.getQueryUser(params);
  }

Nest 為所有標準 HTTP 方法提供裝飾器:

@Get(),  ;@Post(),  @Put(),  @Delete(),  @Patch(),  @Options(), 和 @Head().  此外, @All()定義處理所有這些的端點。

路由通配符

支持基于模式的路由。  例如,星號用作通配符,將匹配任何字符組合。

@Get('ab*cd')
findAll() {
  return 'This route uses a wildcard';
}

'ab*cd'路由路徑將匹配 abcd,  ab_cd,  abecd, 等等

請求狀態(tài)碼

響應狀態(tài)碼默認為 200 , POST 為 201 , 我們可以通過添加 @HttpCode(...)處理程序級別的裝飾器。   指定請求 Code

@Post()
@HttpCode(204)
create() {
  return 'This action adds a new cat';
}

自定義響應頭

可以通過使用 @Header()裝飾器或特定于庫的響應對象(并調用 res.header()直接地)。

@Post()
@Header('Cache-Control', 'none')
create() {
  return 'This action adds a new cat';
}

重定向

響應重定向到特定 URL,響應重定向到特定 URL 來重定向,@Redirect()需要兩個參數(shù), url和 statusCode,兩者都是可選的。  默認值為 statusCode是 302 ( Found) 如果省略。

@Get('docs')
@Redirect('https://docs.nestjs.com', 302)
getDocs(@Query('version') version) {
  if (version && version === '5') {
    return { url: 'https://docs.nestjs.com/v5/' };
  }

路由參數(shù)

當獲取某個文章或數(shù)據(jù)時,需要動態(tài)傳遞id,那么我們可以使用 Get 請求,或拼接動態(tài) id 來獲取,在Nest  中,可以使用 @Param()裝飾器,

它用于修飾方法參數(shù),我們可以通過 params  獲取請求動態(tài)id  .

兩種寫法:

@Get(':id')
findOne(@Param() params): string {
  console.log(params.id);
  return `This action returns a #${params.id} cat`;
}


@Get(':id')
findOne(@Param('id') id: string): string {
  return `This action returns a #${id} cat`;
}

以上就是Nest.js Controller路由和請求處理強大功能解析的詳細內(nèi)容,更多關于Nest.js Controller路由請求處理的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解利用nodejs對本地json文件進行增刪改查

    詳解利用nodejs對本地json文件進行增刪改查

    這篇文章主要介紹了詳解利用nodejs對本地json文件進行增刪改查,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Node在Controller層進行數(shù)據(jù)校驗的過程詳解

    Node在Controller層進行數(shù)據(jù)校驗的過程詳解

    這篇文章主要給大家介紹了關于Node在Controller層進行數(shù)據(jù)校驗的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Node.js中的npm單獨與批量升級依賴包的方式超詳細講解

    Node.js中的npm單獨與批量升級依賴包的方式超詳細講解

    npm outdated僅檢查所有已安裝包的依賴關系,并將當前版本遠程倉庫中的最新版本進行對比,不會升級,這篇文章主要介紹了Node.js中的npm單獨與批量升級依賴包的方式超詳細講解,需要的朋友可以參考下
    2024-02-02
  • Node.js 使用jade模板引擎的示例

    Node.js 使用jade模板引擎的示例

    本篇文章主要介紹了Node.js 使用jade模板引擎的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Node.js + express實現(xiàn)上傳大文件的方法分析【圖片、文本文件】

    Node.js + express實現(xiàn)上傳大文件的方法分析【圖片、文本文件】

    這篇文章主要介紹了Node.js + express實現(xiàn)上傳大文件的方法,結合實例形式分析了Node.js + express針對圖片、文本文件上傳操作實現(xiàn)方法及相關操作注意事項,需要的朋友可以參考下
    2019-03-03
  • nodeJs爬蟲的技術點總結

    nodeJs爬蟲的技術點總結

    本篇文章給大家總結了關于nodeJs爬蟲的技術點的相關知識,對爬蟲有興趣的朋友可以跟著學習參考下。
    2018-05-05
  • node.js中 mysql 增刪改查操作及async,await處理實例分析

    node.js中 mysql 增刪改查操作及async,await處理實例分析

    這篇文章主要介紹了node.js中 mysql 增刪改查操作及async,await處理,結合實例形式分析了node.js中 mysql庫安裝、增刪改查操作及async,await處理相關實現(xiàn)技巧,需要的朋友可以參考下
    2020-02-02
  • node.js實現(xiàn)學生檔案管理

    node.js實現(xiàn)學生檔案管理

    這篇文章主要為大家詳細介紹了node.js實現(xiàn)學生檔案管理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解redis在nodejs中的應用

    詳解redis在nodejs中的應用

    本篇文章給大家詳細分析了redis在nodejs中的應,對此知識點有興趣的朋友可以跟著學習下。
    2018-05-05
  • 快速使用node.js進行web開發(fā)詳解

    快速使用node.js進行web開發(fā)詳解

    本篇文章主要介紹了快速使用node.js進行web開發(fā)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論