- Published on
NestJS 프레임워크
- Authors
- Name
- Haneul
NestJS:
Nest (NestJS)는 효율적이고 확장 가능한Node.js서버 측 애플리케이션을 구축하기위한 프레임 워크입니다.프로그레시브 JavaScript를 사용하고TypeScript로 빌드되고 완전히 지원하며 (하지만 여전히 개발자가 순수 JavaScript로 코딩 할 수 있음) OOP (Object Oriented Programming), FP (Functional Programming) 및 FRP (Functional Reactive Programming) 요소를 결합합니다.
내부적으로 Nest는Express(기본값)와같은 강력한 HTTP 서버 프레임 워크를 사용하며 선택적으로 Fastify를 사용하도록 구성 할 수도 있습니다!
Nest는 이러한 일반적인 Node.js 프레임 워크 (Express / Fastify) 위에 추상화 수준을 제공하지만 API를 개발자에게 직접 노출합니다.이를 통해 개발자는 기본 플랫폼에서 사용할 수있는 수많은 타사 모듈을 자유롭게 사용할 수 있습니다.
npm install -g @nestjs/cli
nest --version
nest new blog-backend
nest 프로젝트 생성 시, npm 선택하기
mongoose : nestJS가 mongoDB를 사용하기 위한 패키지
// change directory
cd blog-backend
// install dependency
npm install --save @nestjs/mongoose mongoose
npm run start:dev
Database
install MongoDB
brew tap mongodb/brew
brew install mongodb-community@4.4
sudo mongod --dbpath=/Users/<user>/data/db
// blog-backend/src/app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { MongooseModule } from '@nestjs/mongoose'; // add this
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost/nest-blog-project', { useNewUrlParser: true }),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
데이터베이스 스키마 & 인터페이스 생성
// /blog-backend/src/blog/dto/create-post.dto.ts
export class CreatePostDTO {
readonly title: string;
readonly description: string;
readonly body: string;
readonly author: string;
readonly date_posted: string;
}
nestJS DTO & 모듈 생성
nest generate module blog
nestJS 서비스 & 컨트롤러 생성
nest generate service blog
nest generate controller blog
컨트롤러 :
참고 :