일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MariaDB
- Docker
- 전역설치
- 리눅스
- 우분투
- wsl
- wget
- 변수
- 노드
- Sequelize
- 리액트를 다루는 기술
- 리액트
- node.js 교과서 따라하기
- 쉘스크립트
- 일반유저
- 이더리움
- centos
- 깃허브
- 설치
- 환경변수
- 시퀄라이즈
- 자바스크립트
- 솔리디티
- npm
- 벨로포터
- 블록체인
- immer
- 머클루트
- 머클트리
- 라우터
- Today
- Total
코드코코
[node][react] 회원가입-로그인 페이지 만들기 (2) : sequelize 사용 본문
1. 회원가입-로그인 페이지 만들기 (1) : express-generator 사용 https://codecoco.tistory.com/97
2. 회원가입-로그인 페이지 만들기 (2) : sequelize 사용 https://codecoco.tistory.com/104
sequelize
-Sequelize는 Node.js기반의 ORM으로 Promise 문법을 사용
0. 환경셋팅
$ npm install -g sequelize-cli
$ npm install sequelize sequelize-cli mysql2
- 전역설치 하여 커맨더 창에서 sequelize 명령어를 실행할 수 있게 함.
1. DB 기본구조 잡기
$ npx sequelize init
- config : 데이터베이스 설정 파일, 사용자 이름, DB 이름, 비밀번호 등의 정보들 담고있음.
- migrations : 데이터베이스 변화하는 과정들을 추적해나가는 정보, 실제 데이터베이스에 반영하거나 변화를 취소할 수도 있다.
- models : 데이터베이스 각 테이블의 정보 및 필드타입을 정의하고 하나의 객체로 모아줌.
- seeders : 테이블에 기본 데이터를 넣고 싶은 경우에 사용.
2. DB 관련 설정 해주기
- config/config.json 수정
- username : DB 유저계정 입력
- password : DB 유저계정의 비밀번호 입력
- database : 데이터베이스 이름 입력
- port : 기본포트가 3306으로 사용하는 포트가 다르다면 입력
- 하지만, config.json 파일은 .env 을 이용할 수 없으니 js 로 바꾸자.
// 수정한 config.js
require("dotenv").config()
const development = {
username: process.env.MYSQL_USERNAME,
password: process.env.MYSQL_PASSWORD,
database: process.env.MYSQL_DATABASE,
host: process.env.MYSQL_HOST,
dialect: "mysql",
port: process.env.MYSQL_PORT,
logging: false,
}
const test = {
username: process.env.MYSQL_USERNAME,
password: process.env.MYSQL_PASSWORD,
database: process.env.MYSQL_DATABASE,
host: process.env.MYSQL_HOST,
dialect: "mysql",
}
const production = {
username: process.env.MYSQL_USERNAME,
password: process.env.MYSQL_PASSWORD,
database: process.env.MYSQL_DATABASE,
host: process.env.MYSQL_HOST,
dialect: "mysql",
}
module.exports = { development, test, production }
- 위의 내용 대로 수정하였다면,
npm i dotenv
touch .env : 내용 작성(아래)
MYSQL_USERNAME = "coco"
MYSQL_PASSWORD = "1234"
MYSQL_DATABASE = "sequel"
MYSQL_HOST = "127.0.0.1"
MYSQL_PORT = "3307"
- DB 유저가 root가 아닌 것이 궁금하다면, 해당 포스팅 참고
https://codecoco.tistory.com/85
3. express 앱과 MariaDB 연결하기
- db.sequelize를 불러와서 sync 메서드를 사용해 서버 실행 시 MySQL과 연동
- force 옵션 : 이 옵션을 true로 설정하면 서버 실행 시마다 테이블을 재생성
- 기존 app. js 코드에 추가작성
const { sequelize } = require("./models");
/* 시퀄라이즈 연결 */
sequelize
.sync({ force: false })
.then(() => {
console.log("*** MariaDB 연결 성공 ***");
})
.catch((err) => {
console.error(err);
});
- 위의 상태로 app.js 를 실행 시키면 아래 에러가 등장, DB가 만들어지지 않아서 발생하는 에러
ConnectionError [SequelizeConnectionError]: Unknown database 'sequel'
4. DB 생성하기
npx sequelize db:create
- 따로 bash shell에서 쿼리문을 작성하지 않아도 DB가 생성 것이 확인 됨.
5. 디비접속 확인하기
npm start
- 콘솔로 DB연결이 확인 됨.
참조 : nodejs 교과서 - 조현영 지음, [Node.js] sequelize 활용 - .. : 네이버블로그 (naver.com)