mysql - sequelize.js orm :Unique email validation for mysql not working

标签 mysql node.js sails.js sequelize.js

这是我用于检查电子邮件 ID 是否存在的模型验证

email:{
            type:Sequelize.STRING,
            validate:{
                notEmpty:{
                    args:true,
                    msg:"Email-id required"
                },
                isEmail:{
                    args:true,
                    msg:'Valid email-id required'
                }
            },
            unique: {
                args:true,
                msg: 'Email address already in use!'
            }

        }

除了unique email validation

,所有其他验证工作正常

最佳答案

我遇到了同样的问题,为了解决这个问题,我首先将索引添加到模型的表中:

queryInterface.addIndex('users', ['email'], {
        indexName: 'email',
        indicesType: 'UNIQUE'
    })

并将其名称设置为该字段,因为如果您不这样做,它将默认创建一个并且模型将无法使用它。

email: {
    type: Sequelize.STRING(191),
    allowNull: false,
    unique: {
        msg: 'your-message-here'
    }
},

我不知道这是 sequelize 的错误还是我使用的版本有问题,但只有在我将索引名称设置为与字段相同后它才起作用。

关于mysql - sequelize.js orm :Unique email validation for mysql not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44559079/

相关文章:

java - 如何备份 MySQL 数据库

node.js - 使用过滤器查询子文档数组并使用 Mongoose 返回原始文档

node.js - Sails Js - 同时访问多个 Controller

node.js - 如何在MongoDB中的数组对象中查找包含字符串的集合记录?

node.js - sails.js 中的部分 POSTED 数据(不时)

mysql - 如何将mysql表转换成redis

mysql - codeigniter 3.1 PDO mysql 错误号 : 3D000/1046 No database selected

php - 将多个文件插入/上传到 PHP MYSQL 数据库表中的特定行

node.js - racerJS 可以使用原生 mongo ObjectID 吗?

javascript - 在 Controller 中所有异步执行之后调用 'render' 的正确方法是什么?