[英]Unique email address with Sequelize
我正在使用 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.sync()
根據模型中指定的模式創建表,如果表存在,則應將{force: true}
傳遞給同步方法,該表將被刪除,並且將創建新的。
盡管由於遷移文件等問題,不強烈推薦使用sequelize.sync()
特別是在生產中,但您可以通過 google 搜索更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.