JavaScript/NestJS

[NestJS] 기본 프로젝트 구조 생성 및 CRUD

반응형

 

글이 잘 보이지 않는다면  우측 하단의 달 모양을 클릭해주시기 바랍니다.

  NestJS 설치

NestJS 를 시작하는 방법은 우선, 흔히 express 를 설치하듯이 Nest CLI 를 설치후, 프로젝트를 생성하도록 하겠습니다.

[project-name] 안에는 생성하고자 하는 프로젝트명을 작성해주시기 바랍니다.

npm i -g @nestjs/cli
nest new [project-name]

프로젝트를 생성한 뒤 yarn 과 npm 중에서 고르는 화면이 나올텐데, 이 부분은 본인이 편한 방법을 선택하시면 됩니다.

 

 

  파일 삭제 및 코드삭제

처음 프로젝트를 생성했다면 아래와같은 구조로 되어있을것입니다.

src
 - app.controller.spec.ts
 - app.controller.ts
 - app.module.ts
 - app.service.ts
 - main.ts

여기서 삭제할 파일들은 아래와 같습니다.

app.controller.spec.ts

app.controller.ts

app.service.ts

 

위 파일들을 삭제 후 app.module.ts 안에서 아래 코드만 남기고 모두 삭제해주세요.

 import { Module } from '@nestjs/common'
 
 @Module({
 	import:[],
 })
 
 export class AppModule{}

 

  Module, Controller, Service

NestJS 에서는 각각의 용도가 정해져있습니다.

Controller, Service 등을 연결해주는 Module 이 있고

페이지에 Request 를 보낼 수 있는 Controller,

각종 작업들을 해주는 Service로 나뉘게 됩니다.

 

이 세가지를 생성할것인데, 명령어로 이 세가지 파일을 생성하도록 하겠습니다.

nest g module user
nest g controller user --no-spec
nest g service user --no-spec

 

--no-spec 은 스펙파일의 생성을 끌 수 있습니다.

이 옵션을 붙히지 않는다면 *.spec.ts 파일이 생성되는데 해당 파일은 테스트를 위한 스펙파일 입니다.

저희는 우선, 테스트파일을 생성하지 않고 작업하도록 하겠습니다.

 

위 순서대로 작성을 하셨다면 아래와같은 파일 구조가 생성될 것 입니다.

src
 - user
   - user.constroller.ts
   - user.module.ts
   - user.service.ts
 - app.module.ts
 - main.ts

이렇게 되었다면 준비는 끝났다고 할 수 있습니다.

 

  CRUD 구성

controller 파일은 라우팅을 하는데 사용하는 파일 입니다.

그렇기에, controller 에서 라우팅을 하여 CRUD 구성을 해보겠습니다.

 

CRUD 은 Create, Read, Update, Delete 총 4가지 구성요소로 한 주소에서 4개의 메서드로 구현을 할 수 있습니다.

POST : Create

GET : Read

PATCH / PUT : Update

DELETE : Delete

이와같이 구성이 됩니다.

 

이 내용을 바탕으로 controller 에서 작업을 해보도록 하겠습니다.

user.contorller.ts 파일에 들어오면 이런식으로 되어있을텐데 여기서 짚고 넘어가야하는 부분이 있습니다.

 

@가 보일텐데 이것을 데코레이터 라고 하며, 클래스를 필수 메타데이터와 연결하고 Nest가 라우팅 맵을 만들 수 있도록 합니다.

//user.controller.ts

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

@Controller('user')
export class CatsController {

}

@Controller('user') 이것은 http://localhost:3000/user 의 경로로 들어올 수 있도록 해줍니다.

이제 메서드들을 추가해보도록 하겠습니다.

 

//user.controller.ts

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

@Controller('user')
export class CatsController {
	@Post()
    createUserData(): String {
    	return 'create';
    }
    
    @Get()
    readUserData(): String {
    	return 'read';
    }
    
    @Patch()
    updateUserData(): String {
    	return 'update';
    }
    
    @Delete()
    deleteUserData(): String {
    	return 'delete';
    }

}

위와같이 해주면 CRUD 의 기본적인 구조는 완성이 되었습니다.

아래 두 명령어중 한가지로 실행 후 테스트를 해보시기 바랍니다

npm run start:dev
yarn start:dev
반응형

'JavaScript > NestJS' 카테고리의 다른 글

[NestJS] NestJS 시작하기 (Express 와의 비교)  (0) 2021.09.05