Mongoose model.create创建文档但不包含传递的值

时间:2017-10-15 02:43:03

标签: node.js mongodb mongoose mean-stack mlab

所以我的应用程序的平均堆栈后端基本上跟踪健身房例程。在其中我试图基于名称,集合数组,userid创建例程,但是当我运行它时执行正常但是mlab上的文档不存储任何这些信息,只是它创建的日期。 (这是传递给我的routine.create的req.body示例,位于\“chest \”[{\“setExercise \”:\“s \”,\“repAmount \”:0,\“setTime \”:1} ] \“59dbfd763645bb001185b86b)

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);
        });
    });
}

这是我正在尝试创建的模式

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);

并且mLab中的例程表中没有文档,但是使用以下信息创建子例程表

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

我是新手,所以任何了解为什么会发生这种情况的人都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

你的第二个module.exports正在覆盖第一个。要么将它们放在不同的文件中,要么导出不同的颜色:

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