🙆

@Queryの使い方

に公開

Todoという機能を作っている前提で書きます

目的

引数を一つ以上受け取りたい

本文

Queryをimportして、@getデコレータにくっつける関数の引数に、@Queryデコレータをくっつけるだけ。
以下のような形式で書く

@Query('エンドポイントで受け取るときの名前') 引数の名前:引数の型

引数の型はデフォルトでstring。
型注釈つけるだけでは、string以外にはならない。パイプってのを使えばstring以外でも受け取れる。
(https://zenn.dev/toshinobu/articles/168666b2b1b1dc#本題の問題)

todo.controller.ts
import {
  Controller,
  Get,
  Query, //@Query
} from '@nestjs/common';

@Controller('todo')
export class TodoController {
  constructor(private readonly prisma: CustomPrismaService) {}

   @Get('getTodos')
  async getTodos(
    @Query('done') done:boolean
    @Query('name') name:string
    @Query('importance') importance:number
  ){
  //ここに処理を書くとき、done,name,importanceが引数として使える
  }

エンドポイントはこんなかんじ(ローカル想定)
TRUE,lunch,3を渡したいとする。

http://~~~~~:3000/todo/getTodos?done=TRUE&name=lunch&importance=3

Discussion