2012-07-05 13 views
8

Tal vez un segundo par de ojos puede ver lo que está mal con mi esquemaNodeJS - MongooseJS error de esquema que no puedo averiguar

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) 

El error:

TypeError: Invalid value for schema path `role` 

Respuesta

18

El esquema incrustado (Roles) tiene que estar por encima de la UserSchema

+0

muchas gracias por su respuesta .... paso más de 6 horas en este ... :( – Machete

1

Además del esquema de roles que tienen que ser importados antes de la UserSchema.

En las versiones más recientes de mangosta también se necesitan los siguientes tipo de sintaxis para ir más allá de la '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; 
    }); 

y el padre:

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

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

Esto sucedió cuando se cambia de mangosta 3 .x a 4.x

Cuestiones relacionadas