入门

安装

  1. npm i sequelize mysql2 -S

连接到数据库

  1. const { Sequelize } = require('sequelize')
  2. const sequelize = new Sequelize('fast_shop', 'root', 'admin888', {
  3. dialect: 'mysql',
  4. host: '127.0.0.1',
  5. port: '3306',
  6. timezone: "+08:00",
  7. define: {
  8. freezeTableName: true, // 关闭复数表名
  9. paranoid: true, // 生成 deleted_at 软删字段
  10. underscored: true, // 驼峰转下划线
  11. createdAt: 'created_at', // 自定义创建时间字段
  12. updatedAt: 'updated_at',
  13. deletedAt: 'deleted_at'
  14. }
  15. })
  16. // 测试连接
  17. // sequelize.authenticate()
  18. // .then(r => {
  19. // console.log(`数据库连接成功`);
  20. // })
  21. // .catch(err => {
  22. // console.log(`数据库连接失败 ${err}`);
  23. // })
  24. // 同步数据库
  25. sequelize.sync()
  26. .then(r => {
  27. console.log('数据库同步成功');
  28. })
  29. .catch(err => {
  30. console.log(`数据库同步失败!${err}`);
  31. })
  32. module.exports = sequelize

定义模型

  1. const { Sequelize, Model, DataTypes } = require('sequelize')
  2. const sequelize = require('./../../core/db')
  3. class User extends Model {}
  4. User.init({
  5. username: {
  6. type: DataTypes.STRING(30),
  7. allowNull: false,
  8. comment: '用户名'
  9. },
  10. password: {
  11. type: DataTypes.STRING,
  12. allowNull: false,
  13. comment: '密码',
  14. // 当 password 字段被重新赋值时执行
  15. set(val) {
  16. const salt = genSaltSync(10)
  17. this.setDataValue('password', hashSync(val, salt))
  18. }
  19. },
  20. email: {
  21. type: DataTypes.STRING,
  22. allowNull: false,
  23. comment: "用户邮箱"
  24. },
  25. openId: {
  26. type: DataTypes.STRING,
  27. defaultValue: '',
  28. comment: "小程序id"
  29. }
  30. }, {
  31. sequelize
  32. })
  33. module.exports = User