1. 설치
[ORM] 📚 sequelize-cli 모듈 사용하기
sequelize-cli 모듈 [sequelize-cli] 데이터베이스가 구축되지않더라도, 프로젝트만 받아서 설정하고 서버실행만 하면 알아서 데이터베이스 테이블 생성해주는 라이브러리이다. 누군가의 프로젝트를
inpa.tistory.com
npm i sequelize sequelize-cli mysql2로 설치
2. 초기화
npx sequelize init

config랑 models, migrations 폴더가 생성됨
3. db create
npx sequelize db:create
만약,
ERROR: connect ECONNREFUSED 127.0.0.1:3306이 나오면 mysql 설치해야함

그리고
ERROR: Access denied for user 'root'@'localhost' (using password: NO)가 나오면...

config.json에서 비밀번호를 mysql 설치할때 root db 비밀번호랑 동일하게 설정해줘야함

4. model 정의
models 폴더에 필요한 데이터모델 정의
예를 들어 user모델
//models/user.js
const Sequelize = require('sequelize')
module.exports = class User extends Sequelize.Model {
static init(sequelize) {
return super.init(
{
//sequelize는 id 자동 생성함(auto_increment)
email: {
type:Sequelize.STRING(40),
allowNull: true, //null 허용
unique: true, //중복 비허용
},
name: {
type: Sequelize.STRING(20),
allowNull: false,
},
password: {
type: Sequelize.STRING(200), //해시암호화에 의해 문자가 길어져서, 여유있게 용량을 잡아줘야함
allowNull: true, //카카오 같은 api 로그인할 시 직접 비밀번호를 설정하지 않으면 null일 수 있다
}
},
{
sequelize,
timestamps: true, //createdAt, updatedAt 자동 생성,
underscored: false, //이건 뭔데
modelName: 'User', //모델명
tableName: 'users', //테이블명
paranoid: true, //deletedAt 자동 생성
charset: 'utf8', //한글 입력 설정
collaate: 'utf8_general_ci',
}
)
}
}
5. 모델과 db연결
//모델 모듈 불러오기
const User = require('./user')
// //db객체에 모델 정보 넣기
db.User = User;
let sequelize;
if (config.use_env_variable) {
sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
sequelize = new Sequelize(config.database, config.username, config.password, config);
}
//모델 - 테이블 연결하기
User.init(sequelize)
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
6. db 연결하기
app.js 혹은 server.js에 다음과 같이 작성
const sequelize = require('./models').sequelize;
sequelize
.sync({ force: false })
.then(() => {
console.log('데이터베이스 연결 성공')
})
.catch(err => {
console.error(err)
})
7. 확인
npm start로 실행

연결에 성공하면 mysql workbench에 들어가서 확인해보면..

config.json에서 맨 처음에 설정된 "development" 쪽의 "database"에 설정된 이름의 db에 테이블이 생성되어 있음
https://alencion.tistory.com/48
[Nodejs] Sequelize로 DB연결하기.
Seqeulize 사용하기seqeulize는 nodejs에서 웹을 데이터베이스에 연동할 때 사용하는 미들웨어이다. seqeulize는 DB에서 조회 된 값을 객체로 전달해주는 ORM(object-relational mapping)이다.Seqeulize 사전작업 npm에
alencion.tistory.com
'프로그래밍 > node.js' 카테고리의 다른 글
react와 express 서버 연동 익히기 5편 -sequelize로 테이블 생성하기- (0) | 2023.01.18 |
---|---|
react와 express 서버 연동 익히기 4편 -sequelize를 이용한 DB와 서버 연동- (0) | 2023.01.18 |
react와 express 서버연동 익히기 3편 -mysql DB연동- (0) | 2023.01.18 |
react와 express 서버연동 익히기 2편 -express 서버와 react 클라이언트 연동- (0) | 2023.01.18 |
react와 express 서버연동 익히기 1편 -express 서버 구축- (0) | 2023.01.18 |