【发布时间】:2019-11-07 23:11:55
【问题描述】:
我正在学习 mongoose,并尝试在 mongoose 架构中将“trim”设置为 true。但是它没有按预期工作。
我尝试将“小写”等其他内容设置为 true,但它确实有效,所以我不知道为什么“修剪”不起作用。
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”。
【问题讨论】:
-
'trim' 属性只删除字符串开头和结尾的空格,而不是中间的空格。
标签: javascript node.js mongodb mongoose mongoose-schema