카테고리 없음
Sequelize 를 통한 DB연결에 대하여
굳1234
2022. 5. 4. 16:53
ORM - Object Relational Mapping
직역하자면 , 객체 관계 맵핑이다.
ORM은 Object Relational Mapping(객체-관계 매핑)의 약자. 자동으로 DBMS의 데이터를 객체 형태로 변환해줘서 더 객체 지향적인 코드를 생산할 수 있도록 도와주다. 이를 통해 개발자는 데이터를 가지고 어떤 작업을 할지에만 집중할 수 있게 되고 또한 손쉽게 DBMS를 변경할 수 있어서 제품이 높은 이식성을 가질 수 있게 된다.
이를 통해서 쿼리문을 사용하지 않고, 쉽게 Database를 조작 할 수 있다.
우선 , Terminal에 들어가 mysql에 접속해준다.

--> mysql -u id -p password
back 서버에
server.js 파일을 만들고

dialect : 에는 사용할 db 프로그램
new Sequelize의 인자값으로는 new Sequelize('db이름','본인의아이디','본인의비밀번호') 를 적는다.
host:에는 우선 localhost를 적어주자
sequelize.sync().then(data => {
console.log('접속됨2222')
})
.catch(error => {
console.log('접속실패함')
})
sequelize.sync()는 Sequelize가 초기화 될 때 DB에 필요한 테이블을 생성하는 함수
function comment() {
console.log('실행확인1 과 3번째에 실행?')
const USER = sequelize.define('comment', {//첫번째 테이블명이라 생각하자(사실 모델을 만든거다)
subject: {
type: DataTypes.STRING(30), //varchar(30)과 같은
allowNull: false,//널을 허용하지 않겠다
},
content: {
type: DataTypes.STRING,
allowNull: false
}
}, {
//dhqtus옵션
})
return USER;
}
이런식으로 쿼리문을 사용하지 않고 Database 테이블을 만들수 있다.
sequelize.define을 comment통해 모델을 정의한다.(테이블 명이라 생각하면 편하다.)
우리가 comment라 define은 했지만 실제로는 comments라고 mysql db에 저장된다.
추가 확인을 위해 comment123 이라 define해 보았다.






type : DataTypes.STRING() 안에 숫자를 넣어주면 varchar(30) 과 같은 역할을 해준다.
설정안할지 varchar가 설정할수 있는 최대의 값을 설정해준다.