首页 > 其他 > 详细

sequelize中model的使用

时间:2019-12-20 19:57:09      阅读:100      评论:0      收藏:0      [点我收藏+]
/* jshint indent: 2 */
let MD5 = require(‘crypto‘).createHash(‘md5‘);
module.exports = function (sequelize, DataTypes) {
  return sequelize.define(‘Account‘, {
    id: {
      type: DataTypes.INTEGER(11),
      allowNull: false,
      primaryKey: true,
      autoIncrement: true
    },
    name: {
      type: DataTypes.STRING(255),
      allowNull: true,
      // 从数据库查询到数据,经过以下处理后给用户
      get() {
        return "dear " + this.getDataValue(‘name‘);
      }
    },
    age: {
      type: DataTypes.INTEGER(11),
      allowNull: true,

      // 数据校验返回异常 customFunc自定义的校验
      validate: {
        max: {
          args: 100,
          msg: "age is larger"
        },
        min: {
          args: 1, 
          msg: ‘age is small‘
        },
        customFunc(val) {
          if (val === 50) {
            console.log(‘dddd‘);
            throw new Error(‘Only even values are allowed!‘)
          }
        }

      }
    },
    passwd: {
      type: DataTypes.STRING(255),
      allowNull: true,
      // 当插入或者修改时,经过以下处理后再写入数据库
      set(val) {
        val = MD5.update(val).digest(‘hex‘);
        this.setDataValue("passwd", val);
      }

    }
  }, {
    tableName: ‘account‘,

    // setterMethods,getterMethods这个是相当与在存取时都添加了changeName这个虚拟字段
    setterMethods: {
      changeName(val) {
        return this.setDataValue(‘name‘, val.slice(0, -1));
      }
    },
    getterMethods: {
      changeName() {
        return this.name + ‘changeName‘;
      }
    }
  });
};

sequelize中model的使用

原文:https://www.cnblogs.com/tinghaiku/p/12074618.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!