분류 전체보기(329)
-
Sequelize CRUD 쿼리
테이블 조회 FindAll 쿼리 결과를 배열 객체로 반환 모든 데이터를 조회하고 싶으면 findAll 메서드를 사용 const { User } = require('./models'); // users테이블 전체를 조회해서 그 결과값을 객체로 만들어 user변수에 넣어준다. const user = User.findAll({}); // user변수에는 조회된 결과 객체가 들어있어서, 해당 테이블 컬럼들을 조회할수 있다. console.log(user[0].comment) // findAll는 여러 행들을 조회하기에, 각 행들이 배열로 저장되어있다. // 따라서 배열 인덱스로 조회한다. 첫번째 행 users테이블에 comment필드를 조회하기 FindOne 쿼리 결과를 객체로 반환 테이블의 데이터를 하나만 가..
2023.07.09 -
Sequelize 관계 정의하기
테이블 간의 관계에는 1:N, 1:1, N:M 이 있다. 1:N 사용자 모델은 게시글 모델과 1:N 관계를 가지고 있다. 모델의 1:N 관계를 설정할 때는 model.hasMany, model.belongsTo 2가지의 메서드를 사용한다. 만약 모델 간의 관계를 설정한 경우 foreignKey 에 해당하는 컬럼이 belongsTo 메서드를 사용하는 모델에 생성되게 된다. /* user.js */ static associate(db) { db.User.hasMany(db.Comment, { foreignKey: 'commenter', sourceKey: 'id', onDelete: 'cascade', onUpdate: 'cascade' }); // db.User (hasMany) db.Comment = 1..
2023.07.09 -
Sequelize Model
model 은 특정 table 과 column 의 속성값을 입력하여, MySQL 과 express 프로젝트를 연결시켜준다. 'use strict'; const { Model } = require('sequelize'); /** * @param {import("sequelize").Sequelize} sequelize - Sequelize * @param {import("sequelize").DataTypes} DataTypes - Sequelize Column DataTypes * @return {Model} - Sequelize Model * **/ module.exports = (sequelize, DataTypes) => { class Posts extends Model { /** * Helper ..
2023.07.09 -
Sequelize Migration
migration 은 Sequelize CLI 를 이용해 MySQL 에 테이블을 생성하기 위해 사용된다. MySQL 에 실제 이식될 테이블에 대한 형태, 속성값을 정의해준다. npx sequelize model:generate --name Posts --attributes title:string,content:string,password:string 테이블을 생성하면 Migration, Models 폴더에 각각 1개의 파일이 생성된걸 확인 할 수 있다. —name 은 테이블 이름을 지정 —attributes 는 입력한 Column 과 속성을 지정해준다. Sequelize 는 Migrations 에 설정된 정보를 바탕으로 MySQL 테이블을 생성한다. npx sequelize db:migrate 'use ..
2023.07.09 -
Sequelize 라이브러리 구성
1. 라이브러리 설치 # express, sequelize, mysql2 라이브러리를 설치합니다. npm install express sequelize mysql2 # sequelize-cli, nodemon 라이브러리를 DevDependency로 설치합니다. npm install -D sequelize-cli nodemon # 설치한 sequelize를 초기화 하여, sequelize를 사용할 수 있는 구조를 생성합니다. npx sequelize init mysql2 를 설치하지 않으면 에러가 발생! sequelize-cli 는 터미널에서 sequelize 명령어를 사용할 수 있는 도구이다. npx sequelize init 내 프로젝트 폴더 이름 ├── models │ └── index.js ├── ..
2023.07.09 -
Sequelize 란?
Sequelize 는 ORM(Object Relational Mapping) 으로써 JS 객체(Object) 와 데이터베이스의 관계(Relation) 을 연결(Mapping) 해주는 도구 ORM 이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용한다. ORM의 장점 객체 지향적인 코드로 인해 더 직관적이고, 비즈니스 로직에 더 집중할 수 있게 도와줍니다. ORM을 이용하면 SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있어 개발자가 객체 지향 프로그래밍하는 데 집중할 수 있도록 도와줍니다. 선언문, 할당, 종료 같은 부수적인 코드가 없거나 급격히 줄어듭니다. 각종 객체에 대한 코드를 별도록 작성..
2023.07.09