sequelize 5

23.05.01. Sequelize findOne에서, 테이블 조인과 이름 변경

Issue 위 ERD에서, Posts 에서..특정 postId를 가지는 데이터를 조회할 때, 필드로 postId, UserId, title, content, nickname을 찾고 싶다면 어떻게 해야할까? 우선 두 테이블을 userId 컬럼이 같은 기준으로 테이블을 조인하고, 각 데이터를 찾으면 될 것 같은데, Sequelize의 findOne 메서드를 사용해서 어떻게 구현해야 하는지가 문제였다. Try&Error 우선 처음 시도는 테이블 조인부터 해봤다. const post = await Posts.findOne({ attributes: [ "postId", "UserId", "title", "content", "createdAt", "updatedAt", ], include: [{ model: Use..

daily 2023.05.01

23.04.29. Sequelize와 Mongoose의 차이?

Mongoose와 Sequelize는 모두 JavaScript로 작성된 ORM(Object-Relational Mapping) 라이브러리로서, 각각 MongoDB와 SQL 데이터베이스를 다루는 데 사용된다. 그러나 둘은 사용하는 데이터베이스 유형과 사용 방식에 차이가 있다. 1. 데이터베이스 유형(이름만 봐도 당연하지만...) Mongoose는 NoSQL 데이터베이스 중 하나인 MongoDB를 다루는 데 사용한다. MongoDB는 document-oriented 데이터베이스로, JSON과 유사한 데이터 모델을 사용한다. 반면에 Sequelize는 SQL 데이터베이스를 다루는 데 사용한다. SQL 데이터베이스는 테이블과 열로 구성된 데이터 모델을 사용한다. 2. 스키마 정의 방식 Mongoose는 스키마를..

daily 2023.04.29

23.04.28. sequelize로 mySQL migration하기

mongoose를 이용해서 mongoDB를 쓸 때 보다, 초기에 설정할 것이 많다. cli로 모델을 설정하는건 익숙치 않다보니, 요약해서 정리해봤다. 환경은 mode.js 에서 미들웨어로 express를 쓰고, ORM으로 sequelize를, DB는 mySQL을 사용하는 경우이다. 로그인 기능을 구현하기 위해 JWT를 사용하고, 쿠키에 저장하는 방식을 쓰기 위해 cookie-parser도 설치해야 한다. # 라이브러리 설치 npm install express sequelize mysql2 cookie-parser jsonwebtoken # sequelize-cli, nodemon 라이브러리를 DevDependency로 설치합니다. # 서비스에 쓰는 툴이 아니라 개발에만 사용하기 때문에, -D 옵션으로 D..

daily 2023.04.29

23.04.29. ORM과 ODM의 같은점과 다른점

node.js 강의를 듣고, 과제를 구현하면서 MongoDB ↔ mongoose와 MySQL ↔ sequelize를 사용해봤다. mongoose는 noSQL인 MongoDB를 편리하게 사용할 수 있게 해주는 ODM이고, sequelize는 MySQL과 같은 SQL을 편리...(?)하게 사용할 수 있게 해주는 ORM이다. 둘의 차이는 관계형 데이터베이스이냐, document 또는 noSQL 방식의 데이터베이스냐의 차이인데, 조금 더 공부하는 차원에서 정리해 보면, Database icons created by Smashicons - Flaticon ORM과 ODM은 모두 데이터베이스와 상호작용하는 프로그래밍 도구이지만, ORM은 관계형 데이터베이스와 작동하고 ODM은 NoSQL 데이터베이스와 작동한다. 두..

daily 2023.04.29

23.04.29. Foreign Key Convention?

사소한 궁금증이지만, 보통은 어떤식으로 하는게 좋을지 궁금해서 찾아봤다. 컨벤션, 관행? 이라는건 결국 개발자스러워지기위한 첫 단추라고 생각한다. 서로 읽으며 불편하지 않게 만드는 것. 그것이 하찮지 않다고 생각하는게 중요하다. Sequelize에서 기본적으로는 모델과 관계 설정에 사용되는 foreign key는 해당 모델 이름과 같은 단어를 포함하여 다양한 방식으로 이름짓는다. 예를 들어, User 모델과 Post 모델 간의 일대다 관계에서, User 모델의 id가 Post 모델에서 foreign key로 사용되는 경우, Sequelize에서는 해당 foreign key를 "UserId"로 작성하는 것이 일반적이다. 다른 방법으로는 FK(foreign key)를 앞에 붙이는 경우도 있다. 예를 들어, ..

daily 2023.04.29
728x90