[NodeExpressTs] 1. 개쉬운 셋팅준비

 


 

 https://github.com/najongjine/NodeExpress_Ts_Rimraf_React_V4

여기서 스켈레톤 프로젝트 다운로드

 

여기 있는 코드 설명위주로 갈거임.

 

필요한거 저기서 복붙해서 쓰면 됨

 

 

src/config/settings.ts 

여기로가면 '안알야줌' 뭐 그런것들 있을거임

그 부분들 고쳐야함

/** src/config/settings.ts 
 * dev : 로컬 컴퓨터 개발
 * else : azure app service
 */
const ENV_MODE = 'dev';

var typeOrmDb1 = {
  type: '',
  host: '',
  port: 3306,
  username: '',
  password: '',
  database: '',
  synchronize: false,
  logging: false,
};
const cryptoKey = 'cryptoKeySample@#@$%#%$#@!!';
const jwtKey = 'jwtKeySample@#@$%#%$#@!!';
let mongoDBConnString = '';

if (ENV_MODE === 'dev') {
  typeOrmDb1.type = 'mysql'; // 이건 내가 연결할려는 DB 타입
  typeOrmDb1.host = '안.알.야.줌'; // DB 주소. 집컴퓨터에서 하는거면 localhost 적으면됨
  typeOrmDb1.port = 3306; // DB 포트번호
  typeOrmDb1.username = '안.알.야.줌'; // 계정이름
  typeOrmDb1.password = '안.알.야.줌'; // password
  typeOrmDb1.database = '안.알.야.줌'; // schema 이름
// migration 으로 필자의 DB와 똑같이 가고 싶으면
// test 라고 이름 지어주셈 
  typeOrmDb1.synchronize = false; // 마이그레이션이란거 강의 후반부에 할건데 
//거기서 에러나면 이거 true로 바꾸셈
  typeOrmDb1.logging = false; // typeorm 이란 모듈이 쿼리 실행할때 쿼리 하나하나 다
//보고싶으면 이부분 true 

  mongoDBConnString = `안.알.야.줌`; // mongodb 커넥션 문자열
else {
// 여깄는건 azure 같은 실서버에 올릴때 읽어들임. 알맞게 수정 ㄱㄱ 
  typeOrmDb1.type = 'mysql';
  typeOrmDb1.host = '안.알.야.줌';
  typeOrmDb1.port = 3306;
  typeOrmDb1.username = '안.알.야.줌';
  typeOrmDb1.password = '안.알.야.줌';
  typeOrmDb1.database = '안.알.야.줌';
//실서버 돌릴때 synchronize true로 해놓으면 절대안됨. 데이터 다 날라감 ㅎㅎ 
  typeOrmDb1.synchronize = false;
  typeOrmDb1.logging = false;

  mongoDBConnString = `안.알.야.줌`;
}

exports.configSettings = {
  typeOrmDb1,
  ENV_MODE,
  cryptoKey,
  jwtKey,
  mongoDBConnString,
};


 

 src/config/settings.ts  이게 뭐하는 거냐면 DB 연결하거나 azure 같은거 연결할때

옵션값을 먹여줘야 함. 그걸한곳에 다 모아서 관리하는 파일이라 생각하면 됨

 typeOrmDb1.database

이 부분은 스키마를 미리 만들어 줘야함. 안그럼 에러남

 필자랑 똑같은 DB 구조로 migration 실행하고 싶으면 이름을 test라고 지어주셈

 

 

 

해당 프로젝트 터미널 창에서

npm i

npm run serve

이거 입력하고 엔터

 

- Found 0 errors. Watching for file changes.
listening on 8080
# connected typeorm1

콘솔창에 이렇게 떴으면 셋팅 준비 완료!!

 

 

migration은 실행 명령어 한방으로 테이블들을 한방에 셋팅 해주는건데

노드의 migration은 마이크로소프트 닷넷 프레임워크만큼 ㅈㄹ게 똑똑하진 않음

그래도 이걸 사용하는 이유가

'DB 테이블이 100개가 넘어가고 협업하는 사람이 개 많은데 그사람들이 각자 프리스타일로 개발하는중 각 개많은 사람들이 DB 를 일일히 손대면서 개발하면 뭐가 어떻게 바뀌었는지 추적이 안됨.

" 땍 네이놈!! 그거 다 기억해야지 넌 정신머리가 어떻게 되쳐먹은거야"

이런 상황을 해결하기 위해서임

migration이란 기능을 쓰면 DB를 직접 수정들어가기전에 안전검증을 쫙 수행하고

아무이상 없으면 프로그램이 알아서 DB를 생성하고 수정해주고 그럼

 하지만 닷넷 프레임워크의 migration 기능만큼 강력하진 않으니

수동적으로 DB를 수정해야 할수도 있음'

 

npm install -g ts-node
npm run typeorm migration:run
 
명령어 실행 
 

 


"센세! migration 이거 자꾸 안됨 어쩜!!"

typeOrmDb1.synchronize =true

이부분 걍 true로 하셈 

아니면 Entity 폴더에서 entity 구조 파악해서 DB 짜야함


만약 npm run serve 에서 에러메세지 나오면 구글링가야함


# connected typeorm1

이 문구가 안뜰경우  mysql 같은경우 root 계정말고 서브계정 하나 더 생성한다음

grant all 로 권 다준다음 서브계정으로 접속하는게 속편함






"센세! .env 파일 안씀??"

그거 써도 되는데 실서버 돌릴때 각 업체들마다 .env 셋팅하고 start script 돌리는 방법이 다 달라서 짜증나서 저렇게했음.
참고로 필자는 대세를 따라서 하는것보다 내가 원하는 옵션이나 플랜이 있는거 고른다음 걍 quick usage 문서에 있는거 복붙하고 끝내는 스타일이라 그럼...
 
 



"센세! 나 2030년에 이거 보는데모듈이 너무 옛날버전임"
 
npm i
 
npm install -g npm-check-updates
ncu -u
npm update
 
이렇게 돌려주면 됨 
 
 

댓글

이 블로그의 인기 게시물

[AI Image]

[GameIdea] 2D

[토이강의] Blazor C# 으로 유튜브 동영상 나의 플레이리스트 만들기