在Mongoose回调中保存失败
Failing to save inside a Mongoose callback
更新:我现在知道问题了。这是后续问题。
我正在使用Mongoose和MongoDB的MMEAN堆栈。我在save()
上得到一个TypeError: undefined is not a function
错误,因为我试图在回调中保存到MongoDB。我不知道如何妥善保存它。
这是我必须遵循的逻辑:
- 检查Foo集合是否为空
- 如果Foo为空,保存新的Foo文件
- 如果Foo不为空,不保存新的Foo文件
我相信除了有问题的mongoose.model("Foo").save(cb);
行,其余的代码是没有错误的。但为了以防万一,我把所有东西都包括在这里了。我正在调用保存方法,addFoo()
,从路由/索引.js。
// routes/index.js - No errors here
router.post('/foo', function(req, res, next){
var foo = new Foo(req.body);
foo.addFoo(function(err, bid){
if(err){ return next(err); }
res.json(foo);
});
});
// models/Foo.js - THE ERROR IS IN HERE
var mongoose = require('mongoose');
var FooSchema = new mongoose.Schema({
creator: String
});
mongoose.model('Foo', FooSchema);
FooSchema.methods.addFoo = function(cb){
// finds all documents of Foo into the "results" array
this.model("Foo").find(function(err, results){
if (err){return err;}
// if the Foo results array is empty
if (results.length == 0){
// THE LINE BELOW IS WHERE THE ERROR OCCURS
// mongoose.model("Foo").save(cb);
// ^
// TypeError: undefined is not a function
mongoose.model("Foo").save(cb);
return;
}
});
}
谢谢你帮我调试
写mongoose.model("Foo").save(cb)
是错误的。
您需要一个有效的模型来处理您定义的模式"Foo"
, var Foo = new mongoose.model('Foo', FooSchema)
。
然后您需要创建模型Foo
的实例,就像var test = new Foo({creator:'test'})
一样,只有在此之后,您才能在实例test
上调用.save()
。
相关文章:
- 如何将getJson的响应保存在全局变量中
- 按下按钮时保存cookie
- 如何使用 Angular JS 将数据保存在数据库中
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- HTML5在画布中加载较小的图像并保存实际大小的图像
- 是否可以在浏览器中使用纯JavaScript保存音频流
- 通过PHP和JQuery在SQL中保存表单数据始终失败
- 在jspdf中使用addHTML保存pdf文件失败
- mongose保存失败,没有错误
- 处理失败的 breezejs 保存
- 如何在共享点 spservice 中保存数据时检查验证是否失败
- 分析错误:“;可以't在保存前触发器“t”中修改用户名;以及“;验证失败”;
- 在Mongoose回调中保存失败
- 猫鼬保存:保存失败,没有错误
- AJAX请求保存到数据库,但警报失败
- 如何在Dynamics CRM 2013中保存操作失败时获取客户端错误详细信息
- Angular将文件保存为csv会导致失败-只有在Chrome上才会出现网络错误
- 什么会导致Chrome保存的密码失败
- 通过toDataURL将画布保存到图像失败
- 保存失败后重新加载页面