我正在尝试通过ajax请求在我的API中创建一个新文档。
这是我的代码:
mongoose.model("Meals").create(
{
_id:mongoose.Schema.Types.ObjectId(),
id:id,
createdBy:basicAuth(req).name,
title: req.body.title,
description: req.body.description,
tags: tags,
mealAdded:(new Date).getTime(),
mealModified:(new Date).getTime(),
ordersLog:[]
},
function (error,out) {
res.send("Server responded with: " + out);
}
);
所以根据documentations这应该有效。但由于某种原因,out
为undefined
而error
只是一个空对象{}
。
这是我的模特:
var mongoose = require('mongoose');
var mealsSchema = new mongoose.Schema({
_id:mongoose.Schema.Types.ObjectId,
id:{type:String},
createdBy:{type:String},
title: {type:String},
description: {type:String},
tags:[{type:String}],
mealAdded:{type:Number},
mealModified:{type:Number},
ordersLog:[{
number:{type:Number},
epoch:{type:Number},
phoneNumber:{type:String},
Address:{type:Number},
paid:{type:Number},
}]
});
mongoose.model('Meals', mealsSchema);
我已经检查了meals
集合,并没有真正添加任何内容!
我不知道自己错过了什么,我迷失了。
答案 0 :(得分:0)
我在Mongoose v4.4.3
下测试您的代码,错误显示如下
[错误:文档在保存之前必须有_id]
通过objectId
生成mongoose.Schema.Types.ObjectId()
似乎不正确,请参阅此ObjectId
如下所示更改代码,效果很好。
var ObjectId = mongoose.Types.ObjectId;
var id = new ObjectId;
console.log(id);
Meal.create(
{
_id: id,
id: '123',
createdBy:'abc',
title: 'dddd',
description: 'youare',
tags: 'asdfg',
mealAdded:(new Date).getTime(),
mealModified:(new Date).getTime(),
ordersLog:[]
},
function (error,out) {
console.log(error);
console.log("Server responded with: " + out);
}
);