我创建了一个集合,我称之为图形服务器上仍然存在,这是服务器代码:项目添加到收藏获取客户端上删除,但
Graphs = new Meteor.Collection("graphs");
Meteor.publish("graphs", function(){
return Graphs.find();
});
在客户端上我尝试存储的东西在此图由:
Graphs = new Meteor.Collection("graphs");
Graphs.insert(graph);
而且我看到流星使用蒙戈它插在服务器端数据库:
db.graphs.count()
返回“1”
在客户端我也有这样的代码来听上进行更改:
Graphs.find().observe({
added: function(graph) {
console.log("added graph");
},
removed: function(graph) { //removed gets called!
console.log("removed graph");
},
changed: function(graph) {
console.log("changed graph");
}
});
但在这里它变得有趣,输出的是“加图”紧跟“删除图形” 。
为什么我将Graph插入并传递给服务器,但是在客户端中,它被添加并删除了?
对Graphs.findOne()的后续调用返回“undefined”,就像它仍然是空的! 任何有关在哪里寻找更多线索的想法?
编辑:
如果我把一个破发点中的 “删除” 上面,我得到以下堆栈跟踪:
Graphs.find.observe.removed(graphwiki.js a150874e1ce3cd4a32d7db02a03cff5239d1ae6e:548) cursor.observeChanges.removed(?minimongo.js daa88dc39d67b40b11d6d6809d72361f9ef6a760:909) (匿名函数)(minimongo.js daa88dc39d67b40b11d6d6809d72361f9ef6a760:275)(?fiber_stubs_client.js 52687e0196bc1d3184ae5ea434a8859275702d94:30) _.extend.runTask _.extend.flush( fiber_stubs_client.js?52687e0196bc1d3184ae5ea434a8859275702d94 :58) _.extend.drain(fiber_stubs_client.js 52687e0196bc1d3184ae5ea434a8859275702d94:?66) LocalCollection.remove(minimongo.js daa88dc39d67b40b11d6d6809d72361f9ef6a760:500) self._connection.registerStore.update(collection.js 682caa185350aa26968d4ffc274579a33922f0e6:109) 商店(匿名函数)(livedata_connection.js 5d09753571656c685bb10c7970eebfbf23d35ef8:404)。 _.each.self._updatesForUnknownStores(匿名函数)(livedata_connection.js 5d09753571656c685bb10c7970eebfbf23d35ef8:984) 。每。 .forEach(?underscore.js ed2d2b960c0e746b3e4f9282d5de66ef7b1a2b4d:78) (匿名功能)(livedata_connection.js 5d09753571656c685bb10c7970eebfbf23d35ef8:983) 。每。 .forEach(?underscore.js ed2d2b960c0e746b3e4f9282d5de66ef7b1a2b4d:86) _.extend._livedata_data(livedata_connection.js 5d09753571656c685bb10c7970eebfbf23d35ef8:980) 的onMessage(livedata_connection.js 5d09753571656c685bb10c7970eebfbf23d35ef8:208)? (匿名函数)(stream_client_sockjs.js 6ef3fd3e8e39c1c357993f6936512726288ad127: 179) 。每个。 .forEach(?underscore.js ed2d2b960c0e746b3e4f9282d5de66ef7b1a2b4d:78) self.socket.onmessage(stream_client_sockjs.js 6ef3fd3e8e39c1c357993f6936512726288ad127:178) REventTarget.dispatchEvent(?sockjs-0.3.4.js 6f1db89d6b451d0faf6b7103782d92527931e66a:86) SockJS。_dispatchMessage(sockjs-0.3.4.js 6f1db89d6b451d0faf6b7103782d92527931e66a:1039) SockJS._didMessage(sockjs-0.3.4.js 6f1db89d6b451d0faf6b7103782d92527931e66a:1097) that.ws.onmessage(sockjs-0.3.4.js 6f1db89d6b451d0faf6b7103782d92527931e66a:1238)
这是否提供了什么可能是错误的提示?
我可以在同一时间插入其他集合中,但不会获得角色备份! /Hans
您的描述听起来像变化被服务器拒绝。每次在客户端执行插入操作时,服务器上的计数是否增加?你在服务器上有一个'Graphs.allow()'规则,允许客户端插入? – user728291
谢谢! 我对我的应用程序和其他收集工作的访问没有任何限制。但是我在服务器上添加了一个Graphs.allow(),它在所有情况下都返回true,并且没有任何变化。 服务器数据库上的计数增加,所以插入运行正常。由于“删除”呼叫,它们从未在客户端反映。 添加了一个堆栈跟踪,如果这可以帮助任何人给我更多的提示在哪里看。 – hansbrattberg