8. Nest.js 배포시 주의할 점 빌드 및 배포 후 pm2로 실행하는 방법npm run buildpm2 start dist/main.js --name nest-app배포시nest는 dist, .env, package.json, tsconfig.ts만 있으면 npm i 된다.AWS 환경에서 nest를 다운로드 하는걸 잊지말자AWS 환경에서 nest를 깔아야한다.npm install -g @nestjs/cli Framework/Nest.js 2024.09.20
7. Nest.js, mongoose로 mongoDB 사용하기 npm i @nestjs/mongoose mongoose0. app.module.ts 전역 추가import { MongooseModule } from '@nestjs/mongoose';import { UserModule } from './user/user.module';@Module({ imports: [ MongooseModule.forRoot('mongodb://localhost:27017/nest'), // MongoDB URI UserModule,],})nest 라는 이름의 데이터베이스에 연결하는 URI이며 필요에 따라 URI를 변경할 수 있다./nest를 하면 mongoDB안에 nest라는 데이터 베이스에 접속한다. 없으면 데이터 베이스를 만듬1. 스키마 파일 작성.. Framework/Nest.js 2024.09.20
6. Nest.js, typeorm으로 MySql 사용하기 0. 설치npm i @nestjs/typeorm mysql21. 데이터 베이스 엔티티(테이블) 생성src/entity 폴더 생성테이블명.entitiy.ts 파일 생성 이후 작성import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";@Entity()export class User { @PrimaryGeneratedColumn({ type: 'int', unsigned: true }) //PrimaryGeneratedColumn은 primaryKey를 뜻한다. id: number; @Column() name: string; @Column() email: string; @Column() age: number;}Column 데코레이터 안.. Framework/Nest.js 2024.09.20
5. Nest.js, env 적용하기 npm i @nestjs/config dotenv0. 최상위 .env 파일 내 아래 코드 추가{ DB_TYPE=mysql DB_HOST=localhost DB_PORT=3306 DB_USER=any DB_PW=any DB_NAME=any IS_DEV=true //개발 상태임을 뜻하는데 사용할 것이라 배포시 토글해주어야 한다. LOG_ENABLE=false}1. app.module에서 import@Module({ imports: [ ConfigModule.forRoot({ isGlobal: true,// 설정을 글로벌로 만들어 다른 모듈에서 import할 필요가 없음 }), ], })2. .. Framework/Nest.js 2024.09.20
4. Nest.js, Cors 설정 main.ts에 아래 코드 추가하여 원하는 Cors를 허용할 수 있다.app.enableCors({ origin: 'http://localhost:3000', credentials: true,}); Framework/Nest.js 2024.09.20
3. Nest.js nodemon을 적용시키자 npm i -D nodemonnodemon.json{ "watch": ["src"], "ext": "ts", "ignore": ["src/**/*.spec.ts"], //테스트는 제외}watch: 변경을 감시할 디렉토리를 지정, 여기서는 src 디렉토리를 감시함ext: 감시할 파일의 확장자를 지정ignore: 무시할 파일을 지정패키지 json 수정"start:dev": "nodemon", Framework/Nest.js 2024.09.20
2. Nest.js 서비스, 모듈을 작성해보자 app.service.tsimport { Injectable } from '@nestjs/common';@Injectable()export class UserService { //함수를 제작하면 된다. async userCheck() { //필요 로직 작성 }}컨트롤러를 작성할 때 컨스트럭터에 변수로 만듬으로서 함수들을 사용 가능하다.예constructor(private readonly userService: UserService) //UserService는 import해준다.이후 클래스 내부에서 this.userService로 접근할 수 있다.app.module.ts모듈은 원하는 서비스, 컨트롤러를 그룹화하여 내보내주는 역할을 수행한다.import { Module } from '@ne.. Framework/Nest.js 2024.09.20
1. Nest.js 컨트롤러를 작성해보자 app.controller.tsexpress에서 .post .get 등, HTTP 통신을 받는 서버 코드를 여기에 작성한다.import { Controller, Get } from '@nestjs/common';import { UserService } from './app.service';//@는 데코레이터를 의미하며, Nest에서의 핵심 기능이다. 해당 코드는 아래의 클래스가 컨트롤러임을 나타내준다.@Controller('user') // /user로 들어오는 모든 요청을 UserController가 받는다.export class UserController { constructor(private readonly userService: UserService) {} //컨스트럭터로 UserServic.. Framework/Nest.js 2024.09.20
0. Nest.js를 시작해보자 Nest.js는 데코레이터 패턴을 활용하는 TypeScript 기반의 서버 프레임워크입니다. NestJS는 TypeScript의 강력한 기능과 함께 의존성 주입(Dependency Injection), 모듈화(Modularity) 등의 개념을 도입하여 확장 가능하고 유지보수하기 쉬운 서버 애플리케이션을 구축할 수 있도록 돕습니다.nest의 프로젝트 구조src├─ app.controller.ts //HTTP 요청을 처리함├─ app.module.ts //특정 기능이나 도메인에 관련된 구성 요소를 그룹화한다.├─ app.service.ts //비즈니스 로직(함수 등)을 처리하는 서비스 파일├─ main.ts // 애플리케이션 인스턴스 생성, 미들웨어, 글로벌 파이프 설정, 서버 시작을 담당└─ (기타 모듈 .. Framework/Nest.js 2024.09.20