2017-10-15 8 views
0

J'ai donc un backend de pile moyen pour mon application, qui garde une trace des routines de gym. J'essaye de créer des routines basées sur un nom, un tableau de jeux, un userid, mais quand je l'exécute, il s'exécute bien mais les documents sur mlab ne stockent aucune de ces informations, juste la date à laquelle il a été créé. (c'est l'exemple de req.body passé à mon routine.create ci-dessous \ "poitrine \" [{\ "setExercise \": \ "s \", \ "repAmount \": 0, \ "setTime \": 1 }] \ "59dbfd763645bb001185b86b)Mongoose model.create crée un document mais ne contient aucune valeur.

exports.createRoutine = function(req, res, next){ 
    Routine.create({ 
     routine : req.body.routineName, 
     sets : req.body.subroutines, 
     userid: req.body.userid 
    }, function(err, routine) { 
     if (err){ 
      res.send(err); 
     } 
     Routine.find(function(err, routines) { 
      if (err){ 
       res.send(err); 
      } 
      res.json(routines); 
     }); 
    }); 
} 

Ceci est mon schéma pour ce que je suis en train de créer

var SubRoutineSchema = new mongoose.Schema({ 
    setExercise: String, 
    repAmount: { 
     type: Number 
    }, 
    setTime: { 
     type: Number 
    } 
}, { 
    timestamps: true 
}); 

var RoutineSchema = new mongoose.Schema({ 
    routine: { 
     type: String, 
     lowercase: true, 
     unique: true, 
     required: true 
    }, 
    sets: [SubRoutineSchema], 
    userid: String 
}, { 
    timestamps: true 
}); 

module.exports = mongoose.model('Routine', RoutineSchema); 
module.exports = mongoose.model('SubRoutine', SubRoutineSchema); 

et il n'y a pas de documents dans la table routines mLab, mais une table de sous-routines est créé avec les informations suivantes

{ 
    "_id": { 
     "$oid": "59e2bc7d68ba4a0011f3897c" 
    }, 
    "updatedAt": { 
     "$date": "2017-10-15T01:40:13.220Z" 
    }, 
    "createdAt": { 
     "$date": "2017-10-15T01:40:13.220Z" 
    }, 
    "__v": 0 
} 

Je suis nouveau sur ceci donc tout aperçu de la raison pour laquelle cela se produit serait apprécié.

Répondre

1

Votre second module.exports remplace le premier. Soit les mettre dans des fichiers différents ou faire l'exportation différente comme peut-être:

const Routine = mongoose.model("Routine", RoutineSchema); 
    const Subroutine = mongoose.model(""Subroutine", SubroutineSchema); 
    module.exports = { Routine, Subroutine };