Meteor collection.insert回调问题

时间:2012-05-08 22:03:23

标签: meteor

根据Meteor文档....

  

collection.insert(doc, [callback])

     

回调功能

     

可选。如果存在,则使用错误对象作为第一个参数并将_id作为第二个参数调用。

...然后再下来......

  

在服务器上,如果您不提供回调,则插入块直到数据库确认写入,或者如果出现错误则抛出异常。如果确实提供了回调,则立即返回。插件完成(或失败)后,将使用错误和结果参数调用回调,与方法相同。

它是什么,错误和_id或错误和结果?我确实有Meteor.methods正确触发它们的回调错误,结果可用于范围。

我无法让回调在collection.insert上正常工作(doc,[callback])

无论哪种方式,我都无法让我的回调注册任何东西?

function insertPost(args) {
  this.unblock;
  if(args) { 
    post_text = args.text.slice(0,140);
    var ts = Date.now();  
    Posts.insert({
      post: post_text,
      created: ts
    }, function(error, _id){
      // or try function(error, result) and still get nothing 
      // console.log('result: ' + result);
      console.log('error: ' + error);
      console.log('_id: ' + _id); //this._id doesn't work either
    });

  }
  return;
}

我做错了什么?我从早上2点开始编码...下午6点我的时区...我很模糊,所以我可能(可能)遗漏了一些非常明显的东西。

干杯 吊杆

2 个答案:

答案 0 :(得分:6)

由于这是服务器端代码,您可以这样做:

var id = Posts.insert({data}); // will block until insert is complete

并且ID可用。

答案 1 :(得分:6)

这是一个错误,已在下一个版本中修复。现在,如果您向insert提供回调,则会使用errorresult参数调用它,其中result是新文档的ID,如果有,则为null错误。