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

Mongoose model.create creates document but contains none of the value passed

所以我的应用程序有一个平均堆栈后端,它基本上跟踪健身程序。在其中,我试图根据名称、集合数组、用户 ID 创建例程,但是当我 运行 它执行正常但 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 中的例程 table 中没有文档,但是使用以下信息

创建了一个子例程 table
{
    "_id": {
        "$oid": "59e2bc7d68ba4a0011f3897c"
    },
    "updatedAt": {
        "$date": "2017-10-15T01:40:13.220Z"
    },
    "createdAt": {
        "$date": "2017-10-15T01:40:13.220Z"
    },
    "__v": 0
}

我是新手,所以如果能深入了解为什么会发生这种情况,我们将不胜感激。

您的第二个 module.exports 正在覆盖第一个。将它们放在不同的文件中或使导出不同,例如:

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