根据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点我的时区...我很模糊,所以我可能(可能)遗漏了一些非常明显的东西。
干杯 吊杆
答案 0 :(得分:6)
由于这是服务器端代码,您可以这样做:
var id = Posts.insert({data}); // will block until insert is complete
并且ID可用。
答案 1 :(得分:6)
这是一个错误,已在下一个版本中修复。现在,如果您向insert
提供回调,则会使用error
和result
参数调用它,其中result
是新文档的ID,如果有,则为null错误。