: node.js와 mySQL을 연동하기 위해서
https://thebook.io/080229/ch07/02/01/
npm i sequelize
npm i sequelize-cli
npm i mysql2
npx sequelize init
생성된 config.json파일에 정보 변경 사항 입력(username, password 등)
models 폴더 - index.js 파일도 함께 생성
아래와 같이 코드 변경
models / index.js
const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require('../config/config')[env];
const db = {};
const sequelize = new Sequelize(config.database, config.username, config.password, config);
//sequelize = node랑 mysql을 연동시켜주는 역할
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
필요한 모델들 파일로 만들어주기
ex)
user.js
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', { // Mysql - 소문자로 저장 users 테이블 생성
// id가 기본적으로 들어있다.
email: {
type: DataTypes.STRING(30), //STRING, TEXT, BOOLEAN, INTEGER, FLOAT, DATETIME,
allowNull: false, //필수
unique: true //고유한 값
},
nickname: {
type: DataTypes.STRING(30),
allowNull: false //필수
},
password: {
type: DataTypes.STRING(100),
allowNull: false //필수
},
}, {
charset: 'utf8', //이모티콘까지 하려면 'utf8mb4'
collate: 'utf8_general_ci', //한글 저장
});
User.associate = (db) => {}; //관계형은 이 내부에 기입
return User;
}