[nodeJS] sequelize CRUD

seonjeong·2023년 6월 20일

NodeJS

목록 보기
11/19
post-thumbnail

🔥 Create Table

다음과 같이 migration 파일 생성후 npx sequelize-cli db:migrate를 하면 데이터베이스에 테이블이 생성된다

import { QueryInterface, DataTypes } from "sequelize";

module.exports = {
  up: async (queryInterface: QueryInterface) => {
    await queryInterface.createTable("users", {
      id: {
        type: DataTypes.INTEGER,
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
      },
      email: {
        type: DataTypes.STRING,
        allowNull: false,
      },
      name: {
        type: DataTypes.STRING,
        allowNull: false,
      },
      password: {
        type: DataTypes.STRING,
        allowNull: false,
      },
      createdAt: {
        type: DataTypes.DATE,
        allowNull: false,
      },
      updatedAt: {
        type: DataTypes.DATE,
        allowNull: false,
      },
      del: {
        type: DataTypes.BOOLEAN,
        allowNull: false,
      },
    });
  },

  down: async (queryInterface: QueryInterface) => {
    await queryInterface.dropTable("users");
  },
};

🔥 Create

// INSERT : create()
const addUser = async (req, res) => {
  let userData = req.body

  const user = await User.create(userData).catch((err) => console.log(err));
  res.status(200).send(user);
};

🔥 Read

// SELECT : findAlla() or findOne()
const getAllUsers = async (req, res) => {
  let users = await User.findAll().catch((err) => console.log(err));
  res.status(200).send(users);
};

// ** findOne으로 얻어온 값은 dataValues라는 프로퍼티 안에 있음
const getUser = async (req, res) => {
  let id = req.params.id;
  let user = await User.findOne({ where: { id: id } }).catch((err) =>
    console.log(err)
  );
  res.status(200).send(user);
};

🔥 Update

// UPDATE : update()
const updateUser = async (req, res) => {
  let id = req.params.id;
  const user = await User.update(req.body, { where: { id: id } }).catch((err) =>
    console.log(err)
  );
  res.status(200).send(user);
};

🔥 Delete

// DELETE : destroy()
const deleteUser = async (req, res) => {
  let id = req.params.id;
  await User.destroy({ where: { id: id } }).catch((err) => console.log(err));
  res.status(200).send("User is deleted");
};




Reference

Sequelize 공식문서

https://fomaios.tistory.com/entry/Nodejs-Sequelize%EB%A1%9C-CRUD-%EA%B5%AC%ED%98%84%ED%95%B4-%EB%B3%B4%EA%B8%B0-feat-MySQL
https://hyunseob.github.io/2016/03/27/usage-of-sequelize-js/

profile
🦋개발 공부 기록🦋

0개의 댓글