const User = sequelize.define('user', {
id: {
type: Sequelize.INTEGER, // 整型数据
allowNull: false, // 是否允许为空并填充null
autoIncrement: true, // 自增
primaryKey: true // 主键
},
email: {
type: Sequelize.STRING, // 字符型数据
allowNull: false,
validate: { // 数据检查
isEmail: true
}
},
// 设置默认时间为当前时间,保存为mmmm-yy-dd:hh-mm-ss
myDate: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW // 默认
},
// 设置时间为毫秒
setDate: {
type: Sequelize.DATE,
defaultValue: Sequelize.NOW
}
})
//(加force:true,会先删掉表后再建表)。我们也可以先定义好表结构,再根据表结构定义Sequelize模型,这时可以不用sync。
User.sync({force: true})
Sequelize.STRING // VARCHAR(255)
Sequelize.STRING(1234) // VARCHAR(1234)
Sequelize.STRING.BINARY // VARCHAR BINARY
Sequelize.TEXT // TEXT
Sequelize.TEXT('tiny') // TINYTEXT
Sequelize.INTEGER // INTEGER
Sequelize.BIGINT // BIGINT
Sequelize.BIGINT(11) // BIGINT(11)
Sequelize.FLOAT // FLOAT
Sequelize.FLOAT(11) // FLOAT(11)
Sequelize.FLOAT(11, 12) // FLOAT(11,12)
Sequelize.REAL // REAL PostgreSQL only.
Sequelize.REAL(11) // REAL(11) PostgreSQL only.
Sequelize.REAL(11, 12) // REAL(11,12) PostgreSQL only.
Sequelize.DOUBLE // DOUBLE
Sequelize.DOUBLE(11) // DOUBLE(11)
Sequelize.DOUBLE(11, 12) // DOUBLE(11,12)
Sequelize.DECIMAL // DECIMAL
Sequelize.DECIMAL(10, 2) // DECIMAL(10,2)
Sequelize.DATE // DATETIME for mysql / sqlite, TIMESTAMP WITH TIME ZONE for postgres
Sequelize.DATE(6) // DATETIME(6) for mysql 5.6.4+. Fractional seconds support with up to 6 digits of precision
Sequelize.DATEONLY // DATE without time.
Sequelize.BOOLEAN // TINYINT(1)
Sequelize.ENUM('value 1', 'value 2') // An ENUM with allowed values 'value 1' and 'value 2'
Sequelize.ARRAY(Sequelize.TEXT) // Defines an array. PostgreSQL only.
Sequelize.JSON // JSON column. PostgreSQL only.
Sequelize.JSONB // JSONB column. PostgreSQL only.
Sequelize.BLOB // BLOB (bytea for PostgreSQL)
Sequelize.BLOB('tiny') // TINYBLOB (bytea for PostgreSQL. Other options are medium and long)
Sequelize.UUID // UUID datatype for PostgreSQL and SQLite, CHAR(36) BINARY for MySQL (use defaultValue: Sequelize.UUIDV1 or Sequelize.UUIDV4 to make sequelize generate the ids automatically)
Sequelize.GEOMETRY // Spatial column. PostgreSQL (with PostGIS) or MySQL only.
Sequelize.GEOMETRY('POINT') // Spatial column with geomerty type. PostgreSQL (with PostGIS) or MySQL only.
Sequelize.GEOMETRY('POINT', 4326) // Spatial column with geomerty type and SRID. PostgreSQL (with PostGIS) or MySQL only.
is: ["^[a-z]+$",'i'], // 只允许字母
is: /^[a-z]+$/i, // 只允许字母
not: ["[a-z]",'i'], // 不能使用字母
isEmail: true, // 检测邮箱格式
isUrl: true, // 检查Url格式 (http://foo.com)
isIP: true, // 检查 IPv4 或 IPv6 格式
isIPv4: true, // 检查 IPv4
isIPv6: true, // 检查 IPv6
isAlpha: true, // 不能使用字母
isAlphanumeric: true, // 只允许字母数字字符
isNumeric: true, // 只能使用数字
isInt: true, // 只能是整数
isFloat: true, // 只能是浮点数
isDecimal: true, // 检查数字
isLowercase: true, // 检查小写字母
isUppercase: true, // 检查大写字母
notNull: true, // 不允许null
isNull: true, // 只能为null
notEmpty: true, // 不能空字符串
equals: 'specific value', // 只能使用指定值
contains: 'foo', // 必须包含子字符串
notIn: [['foo', 'bar']], // 不能是数组中的任意一个值
isIn: [['foo', 'bar']], // 只能是数组中的任意一个值
notContains: 'bar', // 不能包含子字符串
len: [2,10], // 值的长度必在 2 和 10 之间
isUUID: 4, // 只能是UUID
isDate: true, // 只能是日期字符串
isAfter: "2011-11-05", // 只能使用指定日期之后的时间
isBefore: "2011-11-05", // 只能使用指定日期之前的时间
max: 23, // 允许的最大值
min: 23, // 允许的最小值
isCreditCard: true, // 检查是有效的信用卡