Вы пытаетесь создать двух пользователей с одним и тем же адресом электронной почты после определения адреса электронной почты как уникального поля.
Возможно, вы можете запросить пользователя по этому адресу электронной почты — если он уже существует — вернуть ошибку или обновить этого пользователя.
var params = {email: '[email protected]'};
User.findOne(params).done(function(error, user) {
// DB error
if (error) {
return res.send(error, 500);
}
// Users exists
if (user && user.length) {
// Return validation error here
return res.send({error: 'User with that email already exists'}, 403.9);
}
// User doesnt exist with that email
User.create(params).done(function(error, user) {
// DB error
if (error) {
return res.send(error, 500);
}
// New user creation was successful
return res.json(user);
});
});
Sails.js и MongoDB: индекс ошибки двойного ключа
В документации Sails.js также есть интересная информация об уникальных свойствах модели https://github.com/balderdashy/waterline#indexing
РЕДАКТИРОВАТЬ: взято с http://sailsjs.org/#!documentation/models
Доступны следующие проверки:
пустой, обязательный, непустой, неопределенный, строка, альфа, числовой, буквенно-цифровой, электронная почта, URL-адрес, urlish, ip, ipv4, ipv6, кредитная карта, uuid, uuidv3, uuidv4, int, целое, число, конечное, десятичное, float, falsey, truey, null, notNull, boolean, array, date, шестнадцатеричный, hexColor, нижний регистр, верхний регистр, after, before, is, регулярное выражение, not, notRegex, equals, содержит, notContains, len, in, notIn, max, min, minLength, максимальная длина
person
Chris McClellan
schedule
05.04.2014