sequelize

Sequelize | 5. 实例 - 常用方法

2021-01-12  本文已影响0人  ShadowFieldEric

模型

const { Sequelize, Model, DataTypes } = require('sequelize');

const sequelize = new Sequelize('db_stu', 'db_username', 'db_password', {
  host: '127.0.0.1',
  dialect: 'mysql',
  pool: {
    max: 50,
    min: 0,
    idle: 5000
  }
});

class UserModel extends Model { }

UserModel.init({
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING,
    allowNull: true
  },
  birthday: {
    type: DataTypes.DATEONLY,
    allowNull: true
  },
  sex: {
    type: DataTypes.ENUM('male', 'female'),
    allowNull: true
  },
  teacherId: {
    type: Sequelize.INTEGER,
    references: {
      model: 't_teachers',
      key: 'id'
    }
  },
  Enable: {
    type: DataTypes.BOOLEAN,
    allowNull: true
  }
}, {
  sequelize,
  modelName: 't_users',
  freezeTableName: true,
  timestamps: false
});

常用方法

创建实例(插入数据)

  1. build方法+save方法
(async () => {
  await UserModel.sync({ force: true }) // force:true => delete it if exists
  
  let user = UserModel.build({
    first_name: 'Guangming',
    last_name: 'Lee',
    birthday: '2020-12-31',
    sex: 'male',
    teacher_id: 1
  })
  await user.save()
})();
  1. create方法
(async () => {
  await UserModel.sync({ force: true }) // force:true => delete it if exists

  let user = await UserModel.create({
    first_name: 'Guangming',
    last_name: 'Lee',
    birthday: '2020-12-31',
    sex: 'male',
    teacher_id: 1
  })
})();

其他常用方法

  1. destroy方法,摧毁实例(删除数据库的数据)
(async () => {
  let user = UserModel.build({
    id: 1
  })
  await user.destroy();
})();

或者

(async () => {
  let user = await UserModel.create({
    first_name: 'Guangming',
    last_name: 'Lee',
    birthday: '2020-12-31',
    sex: 'male',
    teacher_id: 1
  });

  await user.destory();
})();
  1. reload方法(从数据库拉数据)
(async () => {
  let user_reload = UserModel.build({
    id: 2
  })
  await user_reload.reload();
  console.log(user_reload);
})();
上一篇 下一篇

猜你喜欢

热点阅读