[TIL] kiosk_project 기본세팅 / SQL 연결 에러/.env 환경변수 /node.js

코린이의 성장일기·2023년 7월 26일
post-thumbnail

이번엔 kiosk 프로젝트.
키오스크로 주문하는 프로그램을 만들어보겠습니다.

우선 기본세팅부터 시작

node.js의 express를 사용,
db는 aws RDS에 mysql을 사용합니다.sequelize이용해 ORM 작업을 진행합니다.
파일 구조는 계층형 아키텍처를 적용 할 예정입니다.

ERD 구성

프로젝트 폴더 생성 후 git 연결 먼저 해주기

git init

깃에서 레포지토리를 생성 후 로컬레포지토리와 원격레포지토리 연결하기

https://github.com/lec2528/Kiosk_Project.git

연결이 잘 되었는지 확인

git remote -v

이후 npm init으로 이니셜라이징 합니다
pakage.json과 pakage-lock.json 파일이 생성됩니다.
(기본설정으로는 서버 파일명만 수정해주었습니다)

npm init

필요한 패키지 다운로드 받기

npm i dotenv express mysql2 sequelize

dotenv를 통해서 환경변수를 따로 관리해줍니다.

다음은 개발자 의존성패키지 다운받기

npm i -D nodemon sequelize-cli

패키지를 모두 다운받은 후 시퀄라이즈 이니셜라이징을 합니다.

sequlize init

config폴더와 config.json 파일이 생성됩니다.
config.json의 기본 구성은 다음과 같습니다.
db연결과 관련된 내용이 작성되어있고
기본 설정은 로컬스토리지로 설정 되어있습니다.


RDS의 mysql db와 연결해주는데 이 부분에서 dotenv를 통해 환경변수를 관리해줄겁니다.

.env 파일 생성 후 파일 안에 정보를 입력해줍니다.(DB의 정보는 절대적으로 노출하면 안됩니다.)

이후 config.json의 파일이름을 config.js로 수정 후 다음과 같이 내용을 수정해줍니다.

이제 models폴더의 index.js에 가서 config.json을 config.js로 수정해줍니다.

const config = require(__dirname + '/../config/config.js')[env];

그 이후 다음 명령어를 실행해서 db를 생성해줍니다.

npx sequelize db:create


에러가 발생했습니다. 엑세스가 거부되었다고 합니다.

config.js파일에서 console.log(process.env)추가 코드 추가 후 콘솔을 찍어봅시다 .

node config/config.js

내용들을 확인해봅니다.

제 db의 username은 Lec입니다. 노트북 사용자의 이름인 LEC가 입력되어서 발생한 에러인것 같습니다.

.env파일과 config.js파일로 이동해서 환경변수를 수정해줍니다

수정 후 다시 db를 생성합니다

npx sequelize db:create

정상적으로 db가 생성되었습니다.

db 생성시 환경변수는 컴퓨터 내의 모든 환경변수와 상호작용하기 때문에 환경변수 설정시 에러가 발생하면 항상 console 찍어보면서 확인 해볼 필요성을 느끼게 되었습니다.

profile
작동하는 코드만 만들면 반은 완성이다.

0개의 댓글