Mongoose数据不会保存新的模型实例

时间:2015-01-24 03:06:05

标签: javascript node.js mongodb mongoose

我有来自表单的数据,发布到/submit。我的路线看起来像这样:

var submission = require('../models/submission');

router.post('/submit', function(req,res){
    var ObjectId = require('mongoose').Types.ObjectId;
    var formObjId = new ObjectId(req.body.formId);
    var data = new submission({
        formId: formObjId,
        fields: req.body.fields,
    });
    data.save(function (err) {
        if (!err) {
          //NO ERROR
        } else {
          return console.log(err);
        }
    });
    res.end("Successful submission!");
});

和我的提交模型:

var mongoose = require('mongoose');

module.exports = mongoose.model('Submission',{
    createdAt: {type: Date, default: Date.now},
    formId: [],
    sourceId: [],
    fields: [],
});

第一部分是我试图将字符串转换为对象id的地方。在保存时,没有任何内容显示为错误,尽管我尝试保存的两个字段不会与对象一起保存。该对象使用createdAt和object id属性保存在数据库中。其他人都是空白。

我是否做错了以防止属性与对象的其余部分一起保存?

1 个答案:

答案 0 :(得分:1)

如果我以正确的方式理解你的代码,我发现了以下内容

你使用猫鼬驱动程序这很好。

在模式中, formId 的数据类型是Array。但是在响应方法中,分配给该字段的数据类型是ObjectId。

请检查请求正文中是否存在字段字段.i.e您是否发送任何名为'字段'的字段?在邮政要求中。

这些是我第一次看到代码时发现的东西。

我希望这些对您有所帮助。