Unity/Project : Cursed Treasure
팀프 21.07.15. Node.js - Sequelize로 DB에 데이터 추가하기
HappyFrog
2021. 7. 15. 17:11
** Node가 설치되어 있어야 함.
npm init -y
npm i express nodemon
npm i sequelize
npm i sequelize-auto
npm i sequelize -cli -g (스켈레톤을 생성)
sequelize init
- 위 패키지들을 모두 설치하고 시퀄라이즈도 초기화했다면 config파일과 models파일이 생겨났을 것이다.
- 물론 models에는 index파일밖에 없겠지만 곧 만들것이다.
- config에서 우선 자신이 불러올 DB의 정보를 입력해주자.
- define 이하로의 설정은 DB를 생성할 때 utf8 / utf8_bin설정을 하는 것과 같다.
그리고 Sequelize-auto를 이용하여 매핑을 해보자.
- 우선 app.js로 파일을 하나 만들어주자. (cafe24로 호스팅하는 경우는 web.js)
- 그리고 시퀄라이즈 오토를 임포트한 뒤 시퀄라이즈 오토에 내가 사용할 DB의 정보들을 입력하여 실행시킨다. 여기서 "test"라고 적힌 부분은 내가 불러오려는 데이터베이스의 이름을 적어주면 된다.
- 그러면 models에 내 DB의 테이블들이 매핑될것이다.
이거말고
이거
딱히 건들것은 없고 이제 SELECT를 Node에서 실행해보자.
//라우터.get
app.get("/api", async (req, res) => {
let json = await connect();
res.send(json);
});
//Sequelize 선별 데이터 읽기
async function connect() {
try {
const users = await models.user.findOne({
where: {id : "1"}
});
let json = JSON.stringify(users);
console.log(json);
return json;
}
catch(err){
console.log(err);
}
}
// Sequelize 선별 데이터 읽어오기
async function connect() {
try {
const users = await models.user.findAll({
attributes: ["id", "nickname"],
where: {
id: {
[Op.gt]: 1,
},
},
});
const json = JSON.stringify(users);
console.log("here");
console.log(json);
return json;
//접속대기
console.log("connected");
} catch (err) {
console.log(err);
}
}
- 해당 코드들은 비동기로 DB의 데이터를 읽어오는 함수들이다.
- 실행시키는 함수를 마찬가지로 비동기로 실행시킨다면 사용가능하다.
- Op은Sequelize를 임포트하는 과정에서 함께 임포트 할 수 있다.
- Op은 크기를 비교하는 기능을 한다. => [Op.gt]: 1 == 1보다 크다면
- 해당 코드로 실행시키면 다음과 같이 id가 1인 값을 불러올 수 있다.
- INSERT는 다음과 같은 식으로 실행할 수 있다.
- models.DB이름.craete({row : "내용"})식으로 선언해주고 user.save()까지 해주면 DB에 저장이 된다.