[Nest.js] 시작하기
(들어가기 전에) 🛠 왜 NestJS? - 기존에 node.js를 사용한다고 하면 아~ 그럼 Express 쓰겠네라고 생각을 할 만큼 그게 당연한 건 줄 알고 있었다. 여러 개발직군 채용공고를 보며 NestJS를 알게 되었고 N
developdiary-by-soominjeon.tistory.com
[Nest.js] 기본구조 살펴보기
https://developdiary-by-soominjeon.tistory.com/12 [Nest.js] 시작하기 (들어가기 전에) 🛠 왜 NestJS? - 기존에 node.js를 사용한다고 하면 아~ 그럼 Express 쓰겠네라고 생각을 할 만큼 그게 당연한 건 줄 알..
developdiary-by-soominjeon.tistory.com
이제는 게시판 생성을 위한 모듈을 생성해보자.
1. 새롭게 프로젝트를 생성하기 위한 작업들(자동으로 생성된 파일들 제거)
우리는 새롭게 모듈을 생성할 것이기 때문에 app.controller.spec.ts / app.controller.ts / app.service.ts 를 삭제하자
그러면 app.module.ts에 오류가 발생하는데 그 이유는 app.module.ts 파일을 들어가보면 우리가 삭제한
app.controller와 app.service를 import하고 있기 때문
import { Module } from '@nestjs/common';
@Module({
imports: [],
})
export class AppModule {}
따라서 오류가 나는 부분을 삭제하면 app.module.ts는 위의 코드만 남게 된다.
test 폴더도 삭제해주자
2. Board 모듈 생성
- 터미널을 열고 아래와 같은 명령을 입력하자
nest g module boards
nest : nestCLI를 사용하겠다는 의미
g : generate의 약자
module : 모듈을 생성하겠다는 의미
boards : 생성하는 모듈의 이름
- app.module내에 import 코드가 추가되고 src 폴더 내에 boards 폴더가 생성된다
3. Boards 모듈 안에 필요한 것들 구성
- 필요한 것들 : Controller, Service, Entity, Repository, ValidationPipe
3-1. Boards Controller 생성하기
- Controllder는 @Controller 데코레이터로 클래스를 데코레이션하여 정의한다
- 핸들러는 @Get, @Post, @Delete 등과 같은 데코레이터로 장식된 컨트롤러 클래스 내의 단순한 메소드이다.
- 데코레이터 : @Controller('module name')
- 핸들러 : @Get, Post, Patch + ('경로')
-모듈 생성한 것 처럼 터미널에 아래와 같은 명령을 입력하자
nest g controller boards --no-spec
--no-spec : 테스트를 위한 소스 코드 생성을 안하겠다는 의미
boards.module 내에 Controller 관련 코드가 추가되고 boads 폴더 내에 controller 파일이 생성된다
3-2. Boards 서비스 생성하기
- 아래와 같은 명령을 입력하자
nest g service boards --no-spec
boards.module내에 service 관련 코드가 추가되고 boards 폴더 내에 service 파일이 생성된다
- Injectable 데코레이터가 있으며 이 데코레이터를 이용해 다른 컴포넌트에서 이 서비스를 사용할 수 있다
- Board Service를 Controller 내에서 사용하기 위한 작업
import { Controller } from '@nestjs/common';
import { BoardsService } from './boards.service';
@Controller('boards')
export class BoardsController {
// 서비스를 사용하기 위한 절차
// private 로 선언하면 컨트롤러 내부의 property로 자동선언된다
constructor(private boardsService: BoardsService) {}
// 만약 서비스 안의 getAllBoards 메소드를 실행시키고 싶다면 다음과 같이 접근한다.
this.boardsService.getAllBoards()
}
4. 코드 짜기
[본격적인 코드 짜기에 앞서]
- 나는 기본 CRUD기능을 개발할 것이기에 관련한 코드를 작성하였다.
-모든 기능들의 개발 순서는 service-> controller 순이다
- 보드에 글을 작성하고 / 공개글&비공개글 전환을 할 수 있으며 / 글에 포함된 정보는 title, descripton, status(공개/비공개)이다.
- 이제 다음 글에서 실제로 코드를 작성해보도록 하자
'node.js' 카테고리의 다른 글
[Nest.js] 2. 기본구조 살펴보기 (0) | 2022.05.28 |
---|---|
[Nest.js] 1. 시작하기 (0) | 2022.05.28 |