npm i -g @nestjs/cli
nest new server
src/main.ts
→ 4000번 포트로 변경
src
에 필요없는 파일 + Readme 제거
deploy 실행권한 부여
$ git update-index --chmod=+x ./deploy-server.sh
$ git update-index --chmod=+x ./deploy-client.sh
# deploy-server.sh
#!/bin/bash
cd server
yarn install
yarn build
pm2 restart moj_server
cd ..
# deploy-client.sh
#!/bin/bash
cd client
yarn install
yarn build
pm2 restart moj_client
cd ..
[postgresql] Ubuntu에서 postgresql 설치하고 외부 접속 열어주기
yarn add typeorm pg
yarn add @nestjs/typeorm
.env
파일 만들기
POSTGRESQL_HOST=49.50.164.235
POSTGRESQL_PORT=5432
POSTGRESQL_USERNAME=hi
POSTGRESQL_PASSWORD=**********
POSTGRESQL_DATABASE=moj
yarn add @nestjs/config
app.module.ts
파일 수정
import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
}),
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
type: 'postgres',
host: configService.get('POSTGRESQL_HOST'),
port: +configService.get('POSTGRESQL_PORT'),
username: configService.get('POSTGRESQL_USERNAME'),
password: configService.get('POSTGRESQL_PASSWORD'),
database: configService.get('POSTGRESQL_DATABASE'),
autoLoadEntities: true,
synchronize: true,
}),
inject: [ConfigService],
}),
],
controllers: [],
providers: [],
})
export class AppModule {}
네이밍 컨벤션(js, DB) 충돌 해결
자바스크립트에서는 camelCase를 사용하고 DB에서는 snake_case를 사용하는데 ORM을 사용하면 자바스크립트 변수명 그대로 DB 컬럼 이름으로 적용해 둘이 맞지 않는 문제가 존재합니다. 그래서 naming strategy를 정해줘 문제를 해결해주었습니다.