sequelize中model的使用

Posted tinghaiku

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sequelize中model的使用相关的知识,希望对你有一定的参考价值。

/* 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的使用的主要内容,如果未能解决你的问题,请参考以下文章

Sequelize model.sync() 抛出错误

在 Sequelize 中使用实例方法

建立model

Sequelize:模型未关联到 Model2

如何在sequelize中从目标表中查找源表的数据?

建立Model