enums - 创建函数中的枚举数据类型问题
问题描述
我创建了带有 id(主键)、title、created at、updated at、status 的“blogs”表(枚举类型的值为“active、inactive、hidden”,默认值为“active”)
从上述一组值和空值中提供状态值时,博客模型上的创建功能工作正常
const Blog = sequelize.define('blog', { id: { type:
Sequelize.INTEGER,
primaryKey: true, autoIncrement: true }, text: Sequelize.STRING,
status : { type : Sequelize.ENUM, allowNull : false, values :
['Inactive','Active','Hidden'], defaultValue : 'Active' } });
Blog.create({"title" :"hello","status":"abc"}).then(result => {
console.log(result);
});
上面的代码在 blogs 表中插入了一条新记录,状态为空值。但结果对象的状态为“abc”。我怎样才能获得新插入的记录?
解决方案
你应该ENUM
这样定义:
status : {
type : Sequelize.ENUM('Inactive','Active','Hidden'),
allowNull : false,
defaultValue : 'Active',
validate: {
isIn: {
args: [['Inactive','Active','Hidden']],
msg: "Wrong status"
}
}
}
为了验证枚举值,您可以使用每个属性验证
推荐阅读
- r - 历史股票数据
- javascript - React:使用按钮组件生成输入字段数据
- tensorflow - 如何在 Cloud TPU v2 中使用 SQUAD 2.0 训练 BERT 模型?
- python-3.x - 无法导入 bert.tokenization
- sql - 如何为历史和当前生成数据?
- filter - 如何处理卡尔曼滤波器中的异步数据
- unit-testing - 如何在 Appium 中为运行对话框创建会话?
- sql - 如何解析具有多个 xmlns 属性的 xml 标签?
- php - .htaccess 没有文件名的 URL 重定向
- python - Tensorflow 2.0 Beta:Model.fit() 抛出 ValueError:参数和签名参数不匹配:56 57