我有来自表单的数据,发布到/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属性保存在数据库中。其他人都是空白。
我是否做错了以防止属性与对象的其余部分一起保存?
答案 0 :(得分:1)
如果我以正确的方式理解你的代码,我发现了以下内容
你使用猫鼬驱动程序这很好。
在模式中, formId 的数据类型是Array。但是在响应方法中,分配给该字段的数据类型是ObjectId。
请检查请求正文中是否存在字段字段.i.e您是否发送任何名为'字段'的字段?在邮政要求中。
这些是我第一次看到代码时发现的东西。
我希望这些对您有所帮助。