목차
해당 포스팅 부터는 위 이전 습작 블로그에서 진행 했던 프로젝트를 다시 처음부터 개발하며 리팩토링을 하며 기록을 남기는 포스팅입니다.
https://github.com/softmoca/bbc_api_server
또한 위 깃허브 레포지토리에서 백엔드 프로젝트를 진행하고 있습니다.
NESTJS 프로젝트 세팅
npm i -g @nestjs/cli
nest new bbc_api_server
우선 docker를 사용해서 myslq 컨테이너를 띄워 개발을 할 예정이다.
도커 myslq컨테이너 사용을 위한 local-compose.yaml
services:
bbc_mysql:
image: mysql:8.0
restart: always
volumes:
- ./mysql-data:/var/lib/mysql
container_name: bbc_api_myslq_container
environment:
MYSQL_ROOT_USER: ${DATABASE_USERNAME}
MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD}
MYSQL_DATABASE: ${DATABASE_NAME}
TZ: Asia/Seoul
ports:
- ${DATABASE_PORT}:${DATABASE_PORT}
Tz을 서울로 해서 데이터 베이스에 UTC 시간이 아닌 대한민국의 표준시간으로 나오게 세팅
환경변수 사용을 위한 config
npm i --save @nestjs/config
배포 환경 별 다른 환경변수파일을 사용하기 위핸 cross-env
npm install -D cross-env
typeorm관련 라이브러리
npm install --save @nestjs/typeorm typeorm mysql2
app.module.ts
ConfigModule.forRoot({
isGlobal: true,
envFilePath:
process.env.NODE_ENV === "production" ? ".env.prod" : ".env.dev",
}),
실행 환경별로 다른 환경 변수파일을 사용하는 configmodule
package.json의 script의 NODE_ENV가 production이면 .env.prod를 그 이외엔 개발 시 사용할 .env.dev사용
TypeOrmModule.forRoot({
type: "mysql",
host: process.env.DATABASE_HOST,
port: parseInt(process.env.DATABASE_PORT),
username: process.env.DATABASE_USERNAME,
password: process.env.DATABASE_PASSWORD,
database: process.env.DATABASE_NAME,
synchronize: true,
entities: [UsersModel, PostModel],
//logging: true,
charset: "utf8mb4",
}),
도커 실행 환경 별로 다른환경변수 적용 package.json
"docker:local": "docker-compose -f local-compose.yaml --env-file .env.dev up",
도커로 myslq이 잘 작동 되는것을 확인.
실행 환경 별로 다른환경변수 적용 package.json
"start:dev": "cross-env NODE_ENV=development nest start --watch",
"start:prod": " cross-env NODE_ENV=production node dist/main",
서버도 이상 없이 잘 켜진다.
마지막으로 dategrip에도 연결이 잘되어 이제 gui로 데이터들을 관리할 수도 있다.
'캡스톤 설계 [건물별 소통 플랫폼 BBC]' 카테고리의 다른 글
게시판 엔티티 생성 및 게시물 작성 API (0) | 2024.03.07 |
---|---|
[백엔드] 회원가입,로그인(JWT토큰&리프레시 토큰) [1] (0) | 2024.03.07 |
미드/하이파이 프로토 타입 [와이어 프레임&프로토-타이핑] (0) | 2024.03.07 |
광운대대학교 건물별 소통 플랫폼 BBC 설문조사 (0) | 2024.03.07 |
스타트업 필수 역량과 우대 사항 (0) | 2024.03.07 |