【发布时间】:2018-07-08 01:03:12
【问题描述】:
我正在使用 Sequelize/MySQL 运行 ExpressJS,并且非常努力地让一个简单的验证器检查适用于唯一的电子邮件地址。
这是我的用户模型。对于我的生活,我不明白为什么这允许具有重复电子邮件地址的记录。 email.unique=true 肯定会阻止这种情况发生。
'use strict';
module.exports = (sequelize, DataTypes) => {
var User = sequelize.define('User', {
firstName: DataTypes.STRING,
lastName: DataTypes.STRING,
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
validate: {
isEmail: {
msg: "Must be a valid email address",
}
}
}
}, {
indexes: [{
fields: ['email'],
unique: true,
}]
});
return User;
};
任何帮助表示赞赏。
编辑: 这里要求的是创建用户的控制器代码。
const User = require('../models').User;
exports.create = (req, res) => {
User.create( req.body )
.then( user => {
res.json( user );
})
.catch( errors => {
res.json({ errors: errors.errors });
});
};
【问题讨论】:
-
请同时发布创建/添加用户的代码
-
最终添加了下面链接中的验证器。似乎 Sequelize 无论如何都应该做的事情,但它确实有效。 github.com/sequelize/sequelize/issues/…
标签: mysql node.js sequelize.js