Немного не пойму в node js новичок. Как переопределить название ошибки и вообще правильно ли я вывожу валидацию?
Вот что выводит message
E11000 duplicate key error index: social_network.users.$username_1 dup key: { : "ЛОГИН" }
А хотя бы выводило что Такой пользователь уже существует, конечно примерно есть мысль как это сделать, в рендеринге message и там вывести данную ошибку, но думаю, что это не разумно использовать
Как я реализовал в моделе
let schema = new Schema({
username: {
type: String,
index: {unique: true, message: 'Такой пользователь уже существует'},
required: true
},
hashedPassword: {
type: String,
required: true
},
salt: {
type: String,
required: true
},
created: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('User', schema);
Во вьюшке
router.get('/registration', (req, res, next) => {
res.render('registration', {
title: 'Регитрация',
})
});
router.post('/registration', (req, res) => {
let user = {
username: req.body.username,
password: req.body.password
};
let data = new User(user);
data.save().then((doc) => {
console.log('Сохранение объекта', doc);
res.redirect('/')
}).catch((err) => {
console.error(err);
res.render('registration', {
title: 'Регистрация',
message: err.message,
});
})
});
И в шаблоне
extends layout
block content
if(message)
p=message
.container
h1=title
form(method='post')
div(class='input-field col s6')
input#username(type='text', name='username' required=true, class='validate')
label(for='username') Имя пользователя
div(class='input-field col s6')
input#password(type='password', name='password' required=true, class='validate')
label(for='password') Пароль
button(class='waves-effect waves-light btn') Зарегестрировать пользователя
a(href='/') Войти в систему
Не пойму как это сделать