다음과 같이 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");
},
};
// 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);
};
// 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()
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 : 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");
};
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/