2020. 8. 23. 01:17ㆍ프로젝트/가계부 - 초기 개발
가계부 Back-Server 코드 리팩토링 되었습니다. 이쪽 링크에서 확인 해주세요.
1. express설치
npm install express-generator -g
2. express구성
디비 구성하기위한 모듈 설치
npm i mysql2, sequelize, sequelize-cli
3. DB 생성
CREATE DATABASE 데이터 베이스 이름 CHARACTER SET UTF8;
CHARACTER SET UTF8 = > 테이블의 문자 형식을 UTF8로 만든다.
4. sequelize 구성
명령어 터밀널에 sequelize init 입력
sequelize init 입력하면
config폴더와 migration 폴더와 model 폴더가 생성된다
우선 config폴더에 config파일로 디비를 연결한다
DB와 sequelize연결
config에 값을 알맞게 넣어주면된다
"username": "디비 유저이름",
"password": "비밀번호",
"database": "디비이름",
"host": "127.0.0.1",
"dialect": "mysql"
app.js에 밑에 사진 처럼 적어준다
const models = require("./models/index.js");
models.sequelize.sync().then(() => {
console.log(" DB 연결 성공");
}).catch(err => {
console.log("연결 실패");
console.log(err);
})
여기서 디비 구성은 유저 : 가계부는 1:n 관계이다.
유저의 pk키나, 유니크키를 이용해 가계부에 외래키를 주어야 한다.
가계부에 외래키를 받을 컬럼을 하나 생성해준다.
모델 생성
sequelize model:create --name account_users --attributes "userId:string, password:string, salt:string"
sequelize model:create --name account_lists --attributes "userIndex:integer, bigCategory:string, smallCategory:string, card:string, cost:integer, date:string"
sequelize model:create --name 모델 명 --attributes "컬럼명:데이터 타입, 컬럼명2:데이터 타입2" 형식으로 생성
migrations과 models안에 내용을 바꿔 줘야한다
migrations를 이런 형식으로 변경해준다
유저와 가계부 내용은 1:N 관계이다 그러므로
model 파일에있는 model도 1:N에 맞게 이렇게 바꿔준다
유저 테이블
현재 테이블명 . hasMany( models.외래키로 받을테이블명)
'use strict'
module.exports = (sequelize, DataTypes) => {
const accountUser = sequelize.define('account_users', {
userId: {
type: DataTypes.STRING,
allowNull: false
},
password: {
type: DataTypes.STRING,
allowNull: false
},
salt: {
type: DataTypes.STRING,
allowNull: false
}
}, {})
accountUser.associate = (models) => {
accountUser.hasMany(models.account_lists)
}
return accountUser
}
가계부테이블
현재테이블 . belongTo(models.외래키를 보내는곳,{
foreignKey:"외래키를 받을 해당하는 컬럼"
})
'use strict'
module.exports = (sequelize, DataTypes) => {
const accountList = sequelize.define('account_lists', {
userIndex: {
type: DataTypes.INTEGER,
allowNull: false
},
bigCategory: {
type: DataTypes.STRING,
allowNull: false
},
smallCategory: {
type: DataTypes.STRING
},
card: {
type: DataTypes.STRING,
allowNull: false
},
cost: {
type: DataTypes.INTEGER,
allowNull: false
},
date: {
type: DataTypes.STRING,
allowNull: false
}
}, {})
accountList.associate = (models) => {
accountList.belongsTo(models.account_lists, {
foreignKey: "userIndex"
})
}
return accountList
}
sequelize db:migrate
명령어를 입력 후 서버를 실행시켜주면된다.
sequelize db:migrate 은 migration에있는 up 코드를 실행하고,
sequelize db:migrate:undo migration에있는 down 코드를 실행.
이렇게 초기 설정을 구성했다.
'프로젝트 > 가계부 - 초기 개발' 카테고리의 다른 글
5. Node 프로젝트 가계부 만들기 (작성, 수정, 삭제 구현) (0) | 2021.05.25 |
---|---|
4. Node 프로젝트 가계부 만들기 (로그인, passport, jwt 사용) (0) | 2021.05.25 |
3. Node 프로젝트 가계부 만들기 (회원가입) (0) | 2021.05.25 |
2. Node 프로젝트 가계부 만들기 (오류코드 생성) (3) | 2021.05.25 |
Node 프로젝트 가계부 만들기 Node, Vue, Mysql (0) | 2020.08.23 |