Meteor collection.insert回调问题

Ste*_*non 8 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;
}
Run Code Online (Sandbox Code Playgroud)

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

干杯斯蒂夫

zwi*_*pie 6

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

var id = Posts.insert({data}); // will block until insert is complete
Run Code Online (Sandbox Code Playgroud)

并且id将可用.


deb*_*lis 6

这是一个错误,在下一个版本中修复.现在,如果你提供一个回调insert,它将被调用with errorresultarguments,其中result是新文档的ID,如果有错误则为null.