목차
- 환경설정
- 시퀄라이즈 객체 생성하기
- 접속하기
- 모델 정의하기
1. 환경 설정
1-1. 설치
$ npm i mysql2 sequelize
1-2. 가져오기
const {Sequelize} = require('sequelize')
2. 시퀄라이즈 객체 생성하기- 접속에 대한 정보 작성
- 인자값 4개
- 데이터 베이스명
- DB 계정명
- DB 계정의 비밀번호
- 객체 형태의 config
4-1. host: 'localhost'
4-2.dialect: 사용하는 DBMS의 종류
4-3. pool(옵션)
const sequelize = new Sequelize('example','userid','password',{
host: 'localhost',
dialect: 'mysql'
})
3. 접속 하기
3-1. promise로 작성
sequelize.sync().then(data=>{
console.log('접속됨')
})
.catch(error => {
console.log('접속실패함')
})
3-2. async await으로 작성
async function init(){
try{
await sequelize.sync()
console.log('접속')
} catch{
console.log('접속 실패')
}
}
init()
아래와 같은 문구가 뜨면 접속 완료
4. 모델 정의하기
모델을 정의할 comment라는 함수를 작성해서
접속 완료 시 실행될 코드 블럭 안에서 호출하자(sync 메서드 이전에 호출)
첫번
function comment(){
sequelize.define('comment',{
//필드내용
},{
//옵션
})
}
필드내용 작성하기 위해 DataTypes 가져오기
DB간의 필드 내용의 작성을 돕는다.
const {Sequelize,DataTypes} = require('sequelize')
function comment(){
const COMMENT = sequelize.define('comment',{
subject:{
type: DataTypes.STRING(30),
allowNull:false,
},
content:{
type:DataTypes.STRING(50),
allowNull:false
}
},{
tableName: 'comments',
timestamps: false
})
return COMMENT //반환값이 객체다!
}
// 아래의 테이블을 객체로 반환
// +---------+-------------+------+-----+---------+----------------+
// | Field | Type | Null | Key | Default | Extra |
// +---------+-------------+------+-----+---------+----------------+
// | id | int | NO | PRI | NULL | auto_increment |
// | subject | varchar(30) | NO | | NULL | |
// | content | varchar(50) | NO | | NULL | |
// +---------+-------------+------+-----+---------+----------------+
만약 아래와 같이 sync 메서드 안에 다음과 같은 객체 작성 시,
코드 실행 시 마다 이전 테이블 드랍 후 함수 내용으로 테이블 다시 생성
await sequelize.sync({force: true})
const insert = async () => {
const COMMENT = comment()
await COMMENT.create({subject:'asdf', content:'asdfasdf'})
}
'DBMS > 4. 웹서버-DB서버 통신' 카테고리의 다른 글
시퀄라이즈1. 환경셋팅 (0) | 2022.04.29 |
---|---|
# 4-3 mysql2 - 프로미스 API (0) | 2022.03.26 |
# 4-2 mysql2 - 커넥션 풀 (0) | 2022.03.26 |
# 4-1 mysql2 - 기본 (0) | 2022.03.26 |
댓글