Как исправить «обрезку», не работающую в схемах мангуста - PullRequest
0 голосов
/ 26 июня 2019

Я изучаю мангуст и попытался установить значение «trim» в true в схеме мангуста. Однако это не работает, как ожидалось.

Я пытался установить для других вещей, таких как "нижний регистр", значение true, и это работает, поэтому я не знаю, почему не работает "trim".

var userSchema = {
    name: {type: String, required: true, trim: true, lowercase: true},
    email: {
        type: String, 
        required: true,
        validate: function(value){
            if(!(validator.isEmail(value))){
                throw new Error("Not a valid email address");
            }
        },
        trim: true,
    },
    age: {
        type: Number,
        validate: function(value){
            if(value < 0){
                throw new Error("Age must be a positive number");
            }
        },
        default: 0
    },
    password: {
        type: String,
        required: true,
        minlength: 7,
        validate: function(value){
            if(value.toLowerCase().includes("password")){
                throw new Error(" Passwords should not contain the word 
'password ' ");
            }
        },
        trim: true
    }
}

var User = mongoose.model('User', userSchema);

var someuser = new User({
    name: "some user",
    age: 25,
    email: "user@something.com",
    password: "verysecurepassword"
})

Я ожидал, что имя нового пользователя будет «someuser», но вместо этого оно оказалось «some user».

1 Ответ

0 голосов
/ 26 июня 2019

Имя «некоторый пользователь» имеет пробел в середине строки.

То, что вы пытаетесь сделать, не будет работать, так как trim удалит пробелы только из начала и конца строки.

...