【发布时间】:2015-03-03 18:06:18
【问题描述】:
我正在使用Node.js + PostgreSQL + Sequelize.js 2.0.2。我对电话字段有以下架构定义,它可以是字符串数组,但只允许使用数字:
var User = sequelize.define("User", {
....
....
/** Phone number
* Multiple numbers should be registered due to
*/
phone: {
type: Sequelize.ARRAY(Sequelize.STRING),
allowNull: false,
unique: true,
validate: {
isNumeric: true
}
},
....
....
});
数字电话号码数组未通过验证。
输入:[ '9252522525', '9252525555' ]
错误:
{ [SequelizeValidationError: Validation error]
name: 'SequelizeValidationError',
message: 'Validation error',
errors:
[ { message: 'Validation isNumeric failed',
type: 'Validation error',
path: 'phone',
value: 'Validation isNumeric failed',
__raw: 'Validation isNumeric failed' } ] }
但是,单值数组输入[ '9252522525' ]是成功的。是Sequelize的bug还是我错了?
[编辑]
我将验证器更改为is,但没有成功。
validate: {
is: ["^[0-9]+$", "i"]
}
我收到以下错误。
{ [SequelizeValidationError: Validation error]
name: 'SequelizeValidationError',
message: 'Validation error',
errors:
[ { message: 'Validation is failed',
type: 'Validation error',
path: 'phone',
value: 'Validation is failed',
__raw: 'Validation is failed' } ] }
【问题讨论】:
标签: arrays node.js postgresql validation sequelize.js