Sequelize에 대한공부- Model Instance

공부중인 개발자·2021년 8월 28일
0

sequelize

목록 보기
4/6
post-thumbnail
초보개발자입니다. 틀린부분이 있다면 언제든지 말씀해주시면 감사합니다!

공식문서의 Model Instance 에 대해 알아보겠다.

const { Sequelize, Model, DataTypes } = require("sequelize");
const sequelize = new Sequelize("sqlite::memory:");

const User = sequelize.define("user", {
  name: DataTypes.TEXT,
  favoriteColor: {
    type: DataTypes.TEXT,
    defaultValue: 'green'
  },
  age: DataTypes.INTEGER,
  cash: DataTypes.INTEGER
});

(async () => {
  await sequelize.sync({ force: true });
  // Code here
})();

공식문서에 제일 먼저 나온 설정
가장 먼저 나온것은 인스턴스를 만들고 DB에 저장하는 방법에 대해 나온다.

User talbe을 만들어준 뒤 그 뒤에 이름이 'Jane'인 레코드를 만들어주는 코드

//편의상 Code here 부분만 작성
(async () => {
  await sequelize.sync({ force: true });
  const jane = User.build({ name: "Jane" });
  console.log(jane instanceof User); // true
  console.log(jane.name); // "Jane"
  await jane.save();
  console.log('Jane was saved to the database!');
})();

결과물

User 테이블을 만들어 놓고 build를 하면 입력한 내용에 따른 레코드를 만들 수 있다. 하지만 이것이 테이블에 저장되는 것은 아니고 .save를 해야 위의 mysql처럼 등록된다.

위 두가지를 한번에 할 수 있는 방법은 .create 가 있다.

const jane = await User.create({ name: "Jane" });
// Jane exists in the database now!
console.log(jane instanceof User); // true
console.log(jane.name); // "Jane"

다음은 만들어놓은 jane 의 로그를 보는 법이다.

const jane = await User.create({ name: "Jane" });
// console.log(jane); // Don't do this
console.log(jane.toJSON()); // This is good!
console.log(JSON.stringify(jane, null, 4)); // This is also good!

.toJSON을 구별하기 위해 앞에 111111을 붙였고 Jane에 대한 정보를 정확하게 볼 수 있다. 입력하지 않은 id,createdAt,updatedAt 까지 모두

그외에도
기본값, 수정, 삭제, 리로드, integer 값 변경하는 법에 대해 나와있다.

다음에는 Model querying에 대해 알아보겠다.

profile
열심히 공부하자

0개의 댓글