0
我有一個模型,在兩個方面表現非常奇怪。奇怪的Mongoosejs模型行爲與預先掛鉤undefined和枚舉被忽略
1)預掛鉤,問題與一個特定領域。
我的模式在其根中有一個帶有字段的params對象。如果我把params對象內以下字段:
roles:[{
"type": String,
"enum": ['user', 'artist', 'promoter', 'admin']
}],
我得到這樣的結果:
if(this.params.roles.length == 0){
^
TypeError: Cannot read property 'length' of undefined
但是如果我改用這種結構(這是相同的結構,不同的名稱和枚舉) :
permissions:[{
"type": String,
"enum": ["Delete","Show","Create","Update"]
}],
然後插入成功。
除此之外,如果我將角色數組移動到模型的根部,插入也會成功。
這是前鉤的樣子
userSchema.pre("save", function(next){
if(this.params.permissions.length == 0){
this.params.permissions.push("luser")
}
next()
});
2)枚舉(直更換permissions
爲roles
從成功走向失敗去):忽略
對於權限我可以進入PELETE成領域和角色,我可以成功地輸入luser。
這兩種行爲對我來說似乎都有問題,因爲點1中數組結構的任何組合都可以工作,除了'角色'(在應用程序中沒有提到其他位置,其目的是讓鉤子設置該參數) 。
任何人都有任何見解,我猜這些問題是相關的,因爲我的枚舉工作在單數字符串字段中。