Sequelizejs:验证错误返回__raw

时间:2014-07-25 16:23:45

标签: validation sequelize.js

我创建了一个模型,其验证如下:

sequelize
    .define('Email',
    {
        email: { type: DataTypes.STRING, allowNull: false, unique:false, defaultValue: 'placeholder',
        validate: {
                isEmail: true,
            }
        }
    });  

如果我尝试使用空的电子邮件'创建一封电子邮件。字段,它会生成此错误:

{
    "error": {
        "__raw": [
            null
        ],
        "email": [
            "Validation isEmail failed"
        ]
}

什么是__raw字段,如何删除它?

1 个答案:

答案 0 :(得分:0)

尝试此验证

email: {
        type: DataTypes.STRING,
        allowNull: false,
        unique: true,
        validate: {
            emailValidation: function() {
                var pattern = /^[a-zA-Z0-9\-_]+(\.[a-zA-Z0-9\-_]+)*@[a-z0-9]+(\-[a-z0-9]+)*(\.[a-z0-9]+(\-[a-z0-9]+)*)*\.[a-z]{2,4}$/;
                if(!pattern.test(this.email)) {
                    throw new Error('INVALID_EMAIL');
                }
            }
        }
    }

希望这是有帮助的