2020.코딩일지

[DB]im-sprint-cmarket-database:test파일안돌고뭐해에러[BEB 6th][nodemon] app crashed - waiting for file changes before starting... 본문

WebServer&DB&CTI

[DB]im-sprint-cmarket-database:test파일안돌고뭐해에러[BEB 6th][nodemon] app crashed - waiting for file changes before starting...

개발하는라푼젤 2022. 8. 9. 21:16
728x90
코드스테이츠 블록체인 부트캠프 6기 

HTML+렌더링+DB영역까지.. 별롭니다.

아키텍처, 구조분리 하여 3-TIER

역할분담. 계층간 문제가 전달되지않게,

생태계성장AJAX:서버렌더링뿐만아니라 클라이언트에서도 렌더링이 가능하고, 비동기방식 호출도 가능하고,

페이지단위아닌 SPA와 구글크롬의 발전! 

Application Tier(서버)안에서도 구조화를 했다! 유지보수쉽!

서버를 구현하는 2가지 타입: 스프링은 아키텍쳐가 정해져있음 vs. Express는 자유로운편이라 정답이없는영역.. 

프로그램을 통해서 어떤 문제를 해결할 것인가?(방식-기능들이모여 비즈니스로직->컨트롤러가됨.) 

 

im-sprint-Cmarket Database에서는 

 

 ${} ‘SQL injection’ 보안상문제가 있기 때문에 params롸 받아 (?,?)prepared로 적용하는 것이 좋다.

cmarket이 MVC패턴이였구나!!

git clone 후, 

package.json파일이 server폴더안에있기 때문에

# /server위치에서 `npm install` 하기.

#터미널아무위치가능

$ mysql.server start  //Starting MySQL SUCCESS!

 

$ mysql -u root -p  //mysql접속해서

mysql> CREATE DATABASE cmarket; //cmarket데이터베이스 생성

mysql> show databases;  //데이터베이스확인 (cmarket있는지)

mysql> exit; //나와주세요

 

# /server위치로 들어가서

$ mysql -u root -p < server/schema.sql -D cmarket  //테이블생성

$ mysql -u root -p < server/seed.sql -D cmarket //레코드입력! 한글부분이있어서

더보기
레코드입력확인

$ show variables like ‘c%’; //필요하다면 속성확인

더보기
속성확인 utf8mb4

$ npm test

npm start, npm test 둘다 난리

<문제없이 돌아야하는데 왜 안도는거!?!?!?!>

[nodemon] app crashed - waiting for file changes before starting...

Error: connect ECONNREFUSED ::1:3306 

Uncaught Error: connect ECONNREFUSED ::1:3306

node.js문제이며 이것해결하기위해서 별다른 일을 할 수 없다카더라…아..앙데...

.env에 패스워드만입력해도되는이유 : server/config/config.js에 이미 설정을 해놓았기 때문에.

 

#시도1) server/config/config.js
localhost부분을 127.0.0.1 로 수정해봤지만(어제의좋은기억) 실패.

#시도2) mysql --verbose --help | grep my.cnf

vi /opt/homebrew/etc/my.cnf  으로 수정하기 (https://abbo.tistory.com/241)

i로 수정들어가서 127.0.0.1부분을 0.0.0.0 (전체공개)로 수정하고 ‘esc’키 :wq종료

#시도3) $ mysql -u root -p

mysql> SELECT Host,User, plugin, authentication_string FROM mysql.user; //로확인

mysql > create user 'username'@'%' identified by '!@#*()!@#asdqwe'; //계정생성

%가 전체권한을 가진 username이 만들어졌다.. 하하핳 되기만해라

#시도4) node 버전 변경..했더니... 

되던 brew services start mysql[MySQL 서비스 시작]도 안됨...ㅠ 이거하지마세여ㅕㅕ

 

#시도5) //database이름 cmarket을 넣어 권한있는 관리자를 만들었다!

mysql> GRANT ALL PRIVILEGES ON cmarket.* TO 'root'@'localhost';

mysql> FLUSH PRIVILEGES;

얼마만에보는 Query OK

오전부터 오후까지 삽질했다리.....🫠

의미있는 시간이였길 바라며 정리해두는 글.


#시도6) 

그래서 결국은 [MacOS] 사용중인포트찾아서,죽이기 

혹시 지금 4000포트에 돌아가고있는 서버가 있는지 확인. `lsof -i :4000`

PID 32933 너를 죽여버리겠.... `kill -9 32933`

서버를 죽였습니다. 

..이렇게 해서 해결된 날이 있고 또 몇일뒤 하니 또 똑같은 에러가 나왔는데 왜 해결이 안되누ㅜㅜ


/server/들어가서 `npm start` 노드익스프레스 서버ON   &  `mysql.server start` 데이터베이스ON

하고 npm test하면 또 Error: connect ECONNREFUSED ::1:3306 씨..씨마켓나한테왜그래ㅐㅐㅜ

감사합니다mypairDU님:-)

#시도7) 

mysql을 연결해주는 server/spec/server-spec.js에 config.js와 같이 `host: "127.0.0.1"`을 추가 ! 했더니 

테스트파일이 돌았습니다아아아ㅏㅏㅏ!!!!!!!앞으로 config파일은 다 찾아볼듯ㅋㅋ (아.. 이제 진짜 시작이네ㅔ.. 핳)

 


테스트마다 다르긴한데... 이번 npm test시,  서버 두개 모두 켜져있어야함.

/server/들어가서 `npm start` 노드익스프레스 서버ON   &  `mysql.server start` 데이터베이스ON

 

 

 

[DB]im-sprint-cmarket-database/Cmarket ServerAPI-[BEB 6th]

코드스테이츠 블록체인 부트캠프 6기 (테스트마다 다르긴한데... 이번 스프린트는 npm test시, 서버 두개 모두 켜져있어야함.) /server/들어가서 `npm start` 노드익스프레스 서버ON  &  `mysql.server start`.

waytogo-anne.tistory.com

 

Comments