Meteor.call未在服务器上启动,在控制台中正常

Meteor.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) {

我有一个服务器方法:

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) {
            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
移出客户端目录,以便观察到的更改同时出现在客户端和服务器端?这解决了我的问题: