js - 2


コントローラの設定を試みる
まずcmdウィンドウにnestgcoを入力し、ファイル名を尋ねます.
ファイル名は遊牧エンコーダの講義に従って映画化された.
import { Body, Controller, Delete, Get, Param, Patch, Post, Query } from '@nestjs/common';

@Controller('movies')
export class MoviesController {

    @Get()
    getAll() {
        return "This wii return all movies";
    }

    @Get("search")
    search(@Query("year") searchingYear: string) {
        return `We are searching for a movie made after: ${searchingYear}`;
    }

    @Get("/:id")
    getOne(@Param("id") movieId: string) {
        return `This will return one movies with the id : ${movieId}`;
    }

    @Post()
    create(@Body() movieData) {
        return movieData;
    }
    @Delete("/:id")
    remove(@Param('id') movieId: string) {
        return `This will delete a movie${movieId}`;
    }

    // put은 모든 리소스 업데이트, patch는 일부만 업데이트
    @Patch('/:id')
    path(@Param('id') movieId: string, @Body() movieUpdateData) {
        return {
            updateMovieId: movieId,
            ...movieUpdateData,
        };
    }


}
ここで,@Controller("value")のvalueはlocalhost:3000/valueである.
@Get(":value")では、valueはlocalhost:3000/value/${value}です.
@Param('value')では、valueはgetのvalueに等しくなければなりません.
movieIdのように変数を受け入れます.
クリスタルには@Patchと@Putがあります.
@Putはすべてのリソースを更新します.
@Patchは一部しか更新できません.
@Getでは順序に注意してください.上のコードではsearchがgetOneより低い場合、searchはid値として認識されるからです.