在Meteor.method调用插入后检索_id
问题描述:
我需要在插入文档后检索_id。在Meteor.method调用插入后检索_id
在客户端:
Meteor.call('saveDocument', value1, value2);
在服务器
saveDocument: function (value1, value2) {
MyCollection.insert({ 'value1': value1, 'value2': value2});
}
我曾尝试与服务器端的插件的回调函数。这样我可以得到该文档的_id,但回调函数内,这不能返回到客户端调用:
saveDocument: function (value1, value2) {
MyCollection.insert({ 'value1': value1, 'valu2': value2},
function(err, docsInserted){ console.log(docsInserted) });
//Works, but docsInserted can't return to the client.
}
答
客户端调用应使用异步风格 - 从文档
在客户端上,如果您没有传递回调,而您又不在存根中,则调用将返回未定义的值,您将无法获取该方法的返回值。
Meteor.call('saveDocument', value1, value2, function(error, result){
var theIdYouWant = result;
});
,那么你只从方法
saveDocument: function (value1, value2) {
return MyCollection.insert({ 'value1': value1, 'valu2': value2});
}
的好办法返回ID给过一遍到文档的这2个部分
我不得不w它的工作原理是这样的:'saveDocument:function(value1,value2){var 0D = MyCollection.insert({'value1':value1,'value2':value2});返回newDoc; }' – eloone 2013-12-24 23:55:58
非常好,谢谢。很好的解释。 – Andy 2017-03-08 22:05:13