Nest JS란
효율적이고 확장 가능한 Node.js서버 측 애플리케이션을 구축하기 위한 프레임워크
JS를 사용하고, TypeScript로 빌드되고, 완벽하게 지원하며 OOP (Object Oriented Programming), FP (Functional Programming) 및 FRP (Functional Reactive Programming) 요소를 사용할 수 있게 해 줍니다.
Nest JS 시작하기
npm i -g @nestjs/cli
nest new project-name # project-name에 원하는 이름 설정
# nest new ./(현재 위치에 파일들 설치)
Nest CLI를 이용하여 위 명령어 입력 시
새 프로젝트가 디렉터리에 생성되고, 초기 핵심 Nest 파일 및 지원 모듈로 디렉터리가 채워져 프로젝트 기본 구조가 생성됩니다.
Nest JS 기본 구조
- eslintrc.js
개발자들이 특정한 규칙을 가지고 코드를 깔끔하게 짤 수 있게 도와주는 라이브러리
타입스크립트를 쓰는 가이드라인 제시
문법에 오류가 나면 알려주는 역할
- prettierrc
주로 코드 형식을 맞추는 데 사용, 코드 포맷터 역할
- nest-cli.json
nest 프로젝트를 위해 특정한 설정을 할 수 있는 json파일
- tsconfig.json
어떻게 타입스크립트를 컴파일할지 설정
- src폴더(대부분의 비즈니스 로직이 들어가는 곳)
main.ts : 앱을 생성하고, 실행
app.module.ts : 앱 모듈을 정의
Nest JS 모듈이란
모듈은 @Module() 데코레이터로 주석이 달린 클래스
@Module() 데코레이터는 Nest가 애플리케이션 구조를 구성하는 데 사용하는 메타 데이터를 제공
같은 기능에 해당하는 것들은 하나의 모듈 폴더 안에 넣어서 사용
ex) UserController, UserService, UserEntity 모두 같은 기능이므로 UserModule 안에 넣어서 사용
import { Module } from '@nestjs/common';
import { BoardsModule } from './boards/boards.module';
@Module({
imports: [BoardsModule],
})
export class AppModule {}
모듈 생성하기
nest g module boards
생성한 boardModule를 사용하기 위해선 루트 모듈인 app.module.ts에 등록해야 함
board 모듈을 명령어로 생성 시 자동으로 등록됨
Nest JS 컨트롤러란
컨트롤러는 들어오는 요청을 처리하고 클라이언트에 응답을 반환하는 역할
컨트롤러는 @Controller 데코레이터로 클래스를 데코레이션 하여 정의
@Controller('/boards') // URL 경로
exprot class BoardsController {
@Get() // 컨트롤러 클래스 내의 단순한 메서드
getBoards(): string{
return 'Hello World'
}
}
컨트롤러 생성하기
nest g controller boards
nest g controller boards --no-spec #--no-spec 은 테스트를 위한 소스코드 생성X
Nest JS 서비스란
컨트롤러에서 데이터의 유효성 체크를 하거나 데이터베이스에 아이템을 생성하는 등의 작업을 하는 부분을 처리함
서비스 생성하기
nest g service boards
nest g service boards --no-spec #--no-spec 은 테스트를 위한 소스코드 생성X
'coding > Nest JS' 카테고리의 다른 글
PostgresSQL TypeORM (0) | 2022.11.03 |
---|---|
Nest JS 파이프 (0) | 2022.11.01 |
Nest JS CRUD (0) | 2022.10.31 |