#validation #vue.js #mongoose
#проверка #vue.js #mongoose
Вопрос:
Я пытаюсь проверить свои данные с помощью схемы mongoose. Но это не работает, и я понятия не имею, почему.
Это моя схема
var mongoose = require("mongoose");
var UserSchema = new mongoose.Schema({
username: { type: String, min: 3, max: 30, required: true },
password: { type: String, min: 6, required: true }
});
mongoose.model("User", UserSchema);
Здесь я вызываю сообщение
router.post('/signup', (req, res) => {
const user = new User({
username: "Marcel",
password: "12345"
})
user.save().then(function(){
res.json({
message: '✅'
})
}).catch(function(){
res.json({
message: '❌'
})
})
})
Я ввел пароль минимум из 6 символов, но с примером пользователя я ввожу 5 символов, поэтому он не должен работать, но это работает. Кто-нибудь может мне помочь?
Ответ №1:
Вы использовали валидаторы min и max, которые относятся к типу Number.
Попробуйте вместо этого использовать minlength и maxlength, которые относятся к типу String:
var UserSchema = new mongoose.Schema({
username: { type: String, minlength: 3, maxlength: 30, required: true },
password: { type: String, minlength: 6, required: true }
});
Я надеюсь, что это поможет.
Комментарии:
1. Я чувствую себя таким глупым, потому что я думал, что это правильно, я смотрел на разные места, где могла быть ошибка. Спасибо
2. У меня есть еще одно сомнение, это не проверяемый тип, когда мы передаем числовой тип в строку, он не проверяет. Вместо того, чтобы выдавать ошибку, она принимает ее. (т. Е. { имя пользователя: «Marcel», пароль: 1234567 } ). почему это не сбой? здесь я присвоил тип number паролю, который на самом деле является строковым типом.