Meteor.call未在服务器上启动,在控制台中正常
我有一个服务器方法: server/methods.jsMeteor.call未在服务器上启动,在控制台中正常,meteor,Meteor,我有一个服务器方法: server/methods.js Meteor.methods({ removeStructure: function(id) { this.unblock(); console.log("method removestructure was called on "+ id); Structure.remove({"overlay_id": id}, function(error, result) { if (error) {
Meteor.methods({
removeStructure: function(id) {
this.unblock();
console.log("method removestructure was called on "+ id);
Structure.remove({"overlay_id": id}, function(error, result) {
if (error) {
console.log(error);
} else {
console.log("Deleted " + result + " structures.");
}
});
}
从集合中删除文档时,将在观察者中调用它:
client/x.js
Overlays.find().observe({
removed: function(item) {
console.log('Overlay removed' );
if ( Meteor.isClient ) {
drawnItems.eachLayer(function (layer) {
if (layer.meteor_id == item._id) {
drawnItems.removeLayer(layer);
}
});
}
console.log("attempting to remove meteor id " + item._id);
Meteor.call("removeStructure", item._id);
}
});
什么也没发生。跟踪“试图删除meteor id jykkcEJuBL4NfJdte”会触发,但服务器上不会调用meteor方法。客户端或服务器不会返回任何错误,就好像它跳过了该行一样
当我在客户端浏览器控制台中键入
Meteor.call(“removeStructure”、“jykkcEJuBL4NfJdte”)代码>
它在服务器和客户端上运行没有问题
这里会出什么问题?我被难住了 这是您创建的一个助手方法,还是在observeChanges中?它在observeChanges
Overlays.find().Observe({…code})中代码>-已经用这个细节更新了问题我想知道你是否点击了这个“最后,如果你在客户端的存根中调用了另一个方法,那么另一个方法没有执行(没有生成RPC,没有“真实的”发生)。”我想知道Meteor是否认为删除了客户端存根,所以它没有使用你的调用。您能否尝试将x.js
移出客户端目录,以便观察到的更改同时出现在客户端和服务器端?这解决了我的问题: