猫鼬数据不会保存模型的新实例
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' 的任何字段请求。
这些是我第一次查看代码时发现的。
希望这些对你有所帮助。
我有来自表单的数据,发布到 /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' 的任何字段请求。
这些是我第一次查看代码时发现的。
希望这些对你有所帮助。