续集。 SQLite 类型检查

问题描述 投票:0回答:1

我开始将 SequelizeSQLite 一起使用。当我尝试插入或更新值时,它不会检查类型错误。例如,我可以在具有 sequelize.BOOLEAN 类型的列中使用 string 值。

我知道SQLite允许这样做,但是Sequelize呢?它没有检查或者我遗漏了什么?

我应该为每种数据类型添加验证检查吗?有没有一种简单的方法来检查类型而不是在每个模型中逐一验证?

node.js sqlite sequelize.js
1个回答
0
投票

既然没有人回答这个问题,我就写自己的解决方案:

Sequelize
SQLite
中,由于
SQLite
的性质,默认情况下不强制执行类型检查。但是,您可以在
Sequelize
级别添加类型验证。

以下是如何为

boolean
字段添加类型验证的示例:

SOME_FIELD_VALIDATOR: {
  isIn: {
     args: [['true', 'false', true, false, 1, 0, '1', '0']],
     msg: 'Not a valid boolean.'
  }
}

在此示例中,

isIn
验证器检查字段的值是否在指定的数组中。如果该值不在数组中,则返回消息“不是有效的布尔值。”

您也可以为其他数据类型添加类似的验证器。例如,对于整数字段,您可以使用

isInt
验证器。

© www.soinside.com 2019 - 2024. All rights reserved.