[英]Using Meteor.methods and Meteor.call
I have the following server code: 我有以下服务器代码:
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] ] } } } );
}
});
and this client code: 和这个客户端代码:
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
});
});
});
I get on my server logs: 我上了我的服务器日志:
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
but I cant't figure out why... 但我不知道为什么......
You cannot return a Collection cursor - it's unable to be converted into an EJSON object. 您无法返回Collection游标 - 它无法转换为EJSON对象。 Return the results of your query as an array.
将查询结果作为数组返回。
eg 例如
return Lists.find(...).fetch();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.