2012-07-05 2 views
8

Может быть, второй набор глаз может видеть то, что не так с моей схемеNodeJS - MongooseJS ошибка схемы, что я не могу понять,

var UserSchema = new Schema({ 
     name: 
       { 
         first : {type: String} 
        , last : {type : String} 
       } 
    , password: {type: String} 
    , username: {type: String} 
    , role: RoleSchema 
    , created_at : {type : Date, default : Date.now} 
    , modified_at : {type : Date, default : Date.now} 
}) 

var RoleSchema = { 
     type: [String] 
    , study_type: [String] 
} 

mongoose.model('User', UserSchema) 

Ошибка:

TypeError: Invalid value for schema path `role` 

ответ

18

Встроенная схема (Роли) должен быть выше UserSchema

+0

Большое спасибо за ваш ответ .... Я трачу больше 6 часов на это ... :( – Machete

1

В дополнение к схеме ролей, которая должна быть импортирована перед UserSchema.

В новых версиях мангуста следующий вид синтаксиса также необходимы для, чтобы выйти за пределы 'TypeError: Invalid value for schema Array path:

var SomeSchema = new mongoose.Schema(); 

    SomeSchema.add({ 
    key1: { 
     type: String, 
     required: true 
    }, 
    key2: { 
     type: String, 
     required: true 
    }, 
    key3: { 
     type: String, 
     required: true 
    } 
    }); 

    SomeSchema.get(function(val){ 
    // Remove the _id from the Violations 
    delete val._id; 
    return val; 
    }); 

И родителю:

var ParentSchema = new mongoose.Schema({ 
    parentKey: String, 
    someArray: [SomeSchema] 
}) 

module.exports = mongoose.model('Parent', ParentSchema) 

Это произошло при переходе от мангуста 3 .x to 4.x

Смежные вопросы