我有以下服务器代码:
Meteor.startup(function () { Meteor.publish("AllMessages",function() { lists._ensureIndex( { location : "2d" } ); return lists.find(); }); }); Meteor.methods({ getListsWithinBounds: function(bounds) { lists._ensureIndex( { location : "2d" } ); return lists.find( { "location": { "$within": { "$Box": [ [bounds.bottomLeftLng,bounds.bottomLeftLat],[bounds.topRightLng,bounds.topRightLat] ] } } } ); } });
和这个客户端代码:
Meteor.startup(function () { map = L.map('map_canvas').locate({setView: true,maxZoom: 21}); L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png',{ attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' }).addTo(map); bounds = {}; map.on('locationfound',function(e){ bounds.bottomLeftLat = map.getBounds()._southWest.lat; bounds.bottomLeftLng = map.getBounds()._southWest.lng; bounds.topRightLat = map.getBounds()._northEast.lat; bounds.topRightLng = map.getBounds()._northEast.lng; console.log(bounds); Meteor.call("getListsWithinBounds",bounds,function(err,result) { console.log('call'+result); // should log a LocalCursor pointing to the relevant lists }); }); });
我上了我的服务器日志:
Internal exception while processing message { msg: 'method',method: 'getListsWithinBounds',params: [ { bottomLeftLat: 50.05008477838258,bottomLeftLng: 0.384521484375,topRightLat: 51.63847621195153,topRightLng: 8.3221435546875 } ],id: '2' } undefined
但我不知道为什么……