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

Mongoose data wont save new instance of model

我有来自表单的数据,发布到 /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 和对象 ID 属性保存在数据库中。其他都是空白。

我是否做错了什么来阻止属性与对象的其余部分一起保存?

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

你用的猫鼬驱动没问题。

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

请检查一次 fields 字段是否存在于请求正文中。即您是否发送了 post 中名为 'fields' 的任何字段请求。

这些是我第一次查看代码时发现的。

希望这些对你有所帮助。