티스토리 뷰

https://velog.io/@new_wisdom/Node.js-5-HTTP

위에 반드시 읽어보기.


Sequalize?


라이브러리.

node.js 에서 mysql을 쉽게 다룰 수 있게 도와주는 라이브러리

ORM(Object-Relational-Mapping)으로 분류한다.

SQL작성법을 몰라도 사용이가능함.

 

 

ORM?


Sequelize는 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 유용한 도구라는 의미

자바스크립트 구문을 알아서 SQL문으로 변경해준다

 

 

 

설치 및 시작


1. git clone, npm install 설치

2. 공식문서 를 통하여 sequalize 라이브러리 설치

 2.1  : npm install --save sequelize

 2.2 : npm install --save-dev sequelize-cli

3. ORM 설정 (설치한 라이브러리 설정)

 3.1 : npx sequelize-cli init   <- bootstraping 설치 : 기본적인거 알아서 깔아주는작업

 3.2 : config/config.json 위에서 설명한것처럼 데이터베이스 연결하는 방법이다.

지난번 스프린트는 환경변수로 .env파일을 만들어서 작업해줬었지만 sequalize 라이브러리에서는 env. 파일을 만들지않는다. 대신?

config.json 가서 비밀번호를 변경

 

💡 기본적으로 bootstriaping을 설치하면 config가 자동생성되는데 이때 아래와 같이 세가지가 설치되어있다.

  • development : 개발용
  • test : 테스트용
  • production : 배포용

모델 index.js에 가보면 const env = process.env.NODE_ENV || 'development' <- 지금은 development를 사용하니까 아래와같이 password는 development만 바꾸면됨

 

export NODE_ENV=production 하면 다른 환경으로 바꿀 수 있다고 어디서 찾앗다. ㅋㅋㅋㅋ

 

{
  "development": {
    "username": "root",
    "password": "1234",
    "database": "database_development",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "test": {
    "username": "root",
    "password": null,
    "database": "database_test",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "production": {
    "username": "root",
    "password": null,
    "database": "database_production",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
}

 

 

모델설정


1. 데이터베이스를 만들자

  1.1 :  mysql -u root -p mysql 을 실행 
  1.2 : CREATE DATABASE database_development; DB생성 (다른이름으로 하면 실행안될가능성있음. 스프린트와 같은이름으로)
  1.3 : USE database_development; 해당 DB를 사용

2. 모델 생성

 

유어크래스에서 하라는것?

  • url, title, visits 필드를 생성해야 합니다.
  • id, createdAt, updatedAt 필드는 자동으로 생성됩니다.

2.1 터미널에 이렇게 치면 npx sequelize-cli model:generate --name url --attributes url:string,title:string,visits:integer

migrations라는 폴더가 생기며 자동으로 이런 파일이 생성된다.

'use strict';
module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.createTable('urls', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      url: {
        type: Sequelize.STRING
      },
      title: {
        type: Sequelize.STRING
      },
      visits: {
        type: Sequelize.INTEGER,
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },
  down: async (queryInterface, Sequelize) => {
    await queryInterface.dropTable('urls');
  }
};

 

마이그레이션?


공식문서를 참고해보면. 위에서 한것들은 필요한 데이터베이스,모델,마이그레이션 파일들을 하나 만든것뿐

 

공식문서 said : 

첫 번째 모델인 에 필요한 모델과 마이그레이션 파일을 방금 만들었습니다 

 데이터베이스에 아무 것도 삽입하지 않았습니다. 

 

npx sequelize-cli db:migrate.   <- 이 명령어를 치면 테이블이 생성 된다고한다.

 

마이그레이션을 진행하면 ? 데이터베이스에 테이블이 생성된다는뜻.

 

 

MySql로 데이터베이스 확인하기


1. show databases;

 

2. use database_development

3.  show tables;

4. DESC urls

 

5. DESC users

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함