직접 MySQL 언어로 직접 조작하지않고 sequelize 라이브러리를 통해서 MySQL 를 조작할것이다.
npm i sequelize sequelize-cli mysql2
이렇게 3개를 설치를 해준다.
mysql2: node.js 랑 mysql 를 연결해주는 드라이버 역할.
npx sequelize init
설치를 통해서 기본적인 sequelize 셋팅이 된다.
설치를 하면
이렇게 config, migrations, models, seeders 폴더들이 생성이되면 성공적으로 설치를 한것이다.
const dotenv = require('dotenv');
dotenv.config(); // dotenv 사용하기 위해서 json 파일을 js 로 바꿧다.
module.exports={
"development": { // 개발모드 config
"username": "root",
"password": "1234",// 자기 mysql 비밀번호 넣어주세요.
"database": "react-nodebird", // 데이터베이스 이름.
"host": "127.0.0.1",
"dialect": "mysql"
},
"test": { //테스트용 config
"username": "root",
"password": null,
"database": "react-nodebird",
"host": "127.0.0.1",
"dialect": "mysql"
},
"production": {// 배포용 config
"username": "root",
"password": null,
"database": "react-nodebird",
"host": "127.0.0.1",
"dialect": "mysql"
}
}
const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development'; // 아무것도 설정이 안되있으면 development 로 설정
const config = require('../config/config')[env]; //설정한 config 에서 'development' config 가져오자.
const db ={};
const sequelize = new Sequelize(config.database, config.username, config.password, config);// 시퀄라이즈 노드랑mysql 연결해주는 역할.
/*db.Comment = require('./comment')(sequelize, Sequelize); // 모델 불러오고 실행해준다.
db.Hashtag = require('./hashtag')(sequelize, Sequelize);
db.Post = require('./Post')(sequelize, Sequelize);
db.User = require('./user')(sequelize, Sequelize);
db.Image = require('./image')(sequelize, Sequelize);*/ //나중에 모델 구현하고 추가해줄 코드.
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;