Web後臺服務開發——GET方法和路由參數

文章轉自 極客論壇

在上一節中,我們已經知道如何編寫一個GET方法的路由

import { Controller, Get } from '@nestjs/common';

@Controller('v1')
export class V1Controller {
   @Get('/hello')
   sayHello() {
       return 'Hello Controller!';
   }
}

@Controller('v1')是類V1Controller的裝飾器,表示V1Controller是一個Controller,URL前綴是/v1。v1是開篇所述的版本號,以後的版本可以用v2、v3等等。

@Get('/hello')是方法sayHello的裝飾器,表示sayHello是一個路由,用HTTP GET方法訪問,前綴是/hello。由於/hello在v1控制器內,所以完整的路徑是/v1/hello。


那麼,如何傳遞路由參數呢?

第一步,修改@Get裝飾器,增加路由參數的佔位符

import { Controller, Get } from '@nestjs/common';

@Controller('v1')
export class V1Controller {
  @Get('/hello/:id')
   sayHello() {
       return 'Hello Controller!';
   }
}

大家注意到,@Get裝飾器後面的路徑現在是/hello/:id,訪問localhost:3000/v1/hello/1時,則傳遞了參數id,其值爲1。


第二步,修改路由方法,增加形參

import { Controller, Get, Param } from '@nestjs/common';

@Controller('v1')
export class V1Controller {
  @Get('/hello/:id')
   sayHello(@Param() params) {
       return 'Hello Controller!';
   }
}


第三步,使用路由參數

import { Controller, Get, Param } from '@nestjs/common';

@Controller('v1')
export class V1Controller {
   @Get('/hello/:id')
   sayHello(@Param() params) {
       return `Hello Controller ${params.id}`;

   }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章