在我的Meteor.methods中我有
var post= Posts.insert({...}, function(err,docsInserted){
Posts.update({...} , {...});
});
我想按照David Weldon here的建议创建一个插入模型。 我的模型看起来像这样:
_.extend(Posts, {
ins:function (docID){
return Posts.insert({...});
}
});
在我的方法中,我有这个:
var post= Posts.ins(docID, function(err,docsInserted){
Posts.update({...} , {...});
});
如何在方法中使用回调和错误处理?我希望能够在成功插入帖子后执行代码。
答案 0 :(得分:2)
查看collection.insert的文档:
在集合中插入文档。返回其唯一的_id。
参数
doc Object
要插入的文件。可能还没有_id属性,在这种情况下Meteor会为你生成一个。
回调函数
可选。如果存在,则使用错误对象作为第一个参数调用,如果没有错误,则将_id作为第二个参数。
据我了解,如果ins
成功执行,您希望执行回调函数。鉴于这些信息,以下是我如何构建代码:
_.extend(Posts, {
ins:function (docID, callback){
Posts.insert({...}, function( error, id ) {
if( error ) {
callback( error, null );
} else {
callback( null, id );
}
});
}
});
您实际上不需要返回任何内容。您可以只执行回调函数并适当地传递参数。然后,您可以使用以下代码调用该函数:
Posts.ins(docID, function(err,docsInserted){
if( error ) {
// Handle error.
} else {
Posts.update({...} , {...});
}
});