어젯 밤에 들었던 얘기를 바탕으로 내 자신을 다시 remind 하면서, 아침에 개념공부를 다시 시작했다.
일단, 개념공부는 crud 위주로 찾아보았고, 1-2시간 할애했다. 생각해보니, 개념도 미흡하고, mysql 에 대한 지식도 부족해서 프로그래밍 실력이 부족한게 확연히 드러나기 때문에, 앞으로 아침시간에는 개념공부 위주로 할 계획이다.
저녁 9시가 지나서야 팀원들이 하나둘씩 나가고, 현재 조에서 나 혼자 남아있을 때, 부족한 점을 채우고 기능 하나라도 더 하기 위해, 밤을 새우기로 마음 먹고, 시작했다.
내가 해야 할 분량 중에 댓글 조회를 할 것인가, 댓글 삭제를 할 것인가 고민을 했는데, 일단, 댓글 조회를 먼저 하기로 방향을 잡았고, 그 전에, 팀장님과 해결하던 도중에 mysql program 에 문제가 생겨서, 재설치하고, 비밀번호 재설정하고, cmd에서 발생한 여러 문제들을 하나둘씩 해결하기로 했다. 문제점이 왜 발생했는지, 무슨 의미인지 파악하기로 했다.
UnhandledPromiseRejectionWarning: SequelizeAccessDeniedError: Access denied for user 'root'@'localhost' (using password: YES)
이 에러는 db에서 발생한 문제로, vscode에서 db 비밀번호가 틀렸을 때 발생한 문제이다. 이전의 비밀번호가 틀렸기 때문에, 재설치 후 재설정하고, 비밀번호를 고쳐주어서 해결하였다.
UnhandledPromiseRejectionWarning: SequelizeConnectionError: Unknown database 'focus'
이 에러는 중요 문서에 저장된 db name 에 focus가 없어서 발생한 에러인지 혹은 db 안에 저장된 focus 가 없어서인지 처음엔 헷갈렸다. 하지만, 후자가 맞았고, npx sequelize db:create로 해결해서 focus 라는 테이블이 생성되었다.
mysql is not recognized as an internal or external
이 에러는 mysql이 다운로드가 제대로 안되어서 발생한 문제라고 생각했는데, 알고보니 환경변수에 mysql 설정을 집어넣지 않았기 때문에 발생한 문제이다. mysql 8.0 버전이면 그에 맞게 환경변수 path에서 설정해주면 된다.
UnhandledPromiseRejectionWarning: SequelizeDatabaseError: Table 'focus.comments' doesn't exist
말 그대로 해석하면, 아까 focus라는 테이블은 생성되었지만, focus 안에 아무것도 존재 하지 않을때 발생하는 문제이다. comments 라는 테이블을 생성하는 것이 이 문제의 해결방법이다. 그래서 npx sequelize db:migrate 로 테이블을 생성해 줌으로써 해결했다.
UnhandledPromiseRejectionWarning: SequelizeDatabaseError: Field 'userId' doesn't have a default
userId 에 default 값이 없다는 뜻이지만, 댓글 조회하려는 부분에 body 값에 아무것도 존재하지 않아서 발생한 문제임을 알았다.
특히나, 댓글 조회에서는 get 방식이라, 내가 코드상에 썼던 Comment.create({}) 방식은 생성할때 쓰는 방식이기 때문에 옳지 않음을 알게되었고, 그 부분을 지워주어서 해결했다.
또한 api명세서 보면 response에 불러오는 값이 comment 와 message 였기 때문에, {comment, res.status(200).send(message: "")} 방식으로 해결했다.
mysql -u root
mysql -u root -p
SHOW DATABASES;
use focus
SHOW TABLES;
SELECT * FROM commets;
SELECT * FROM comments WHERE postId = 1;
여기서 SELECT * FROM comments WHERE postId = 1; 는 code 상에서 comment.findAll({where: {postId}) 와 같은 뜻임을 알게되었다.
Reference:
https://jeonghwan-kim.github.io/sequelize-migration/
https://velog.io/@aaronddy/Express-req.params-vs.-req.body
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=oralol&logNo=222051630555