我正在使用Mdg:geolocation并拥有以下应用程序。
查找用户的当前位置并检索距用户一定距离内的帖子(收到错误,页面在加载屏幕处卡住)。 lng
的null意味着loc
未定义。
公布
Meteor.publish('geo', function(loc) {
return Posts.find({
"loc": { // error line for server.js 13:30
$near: {
$geometry: { type: "Point", coordinates: [loc.lng, loc.lat] },
.....
路由器
Router.route('/near/:postsLimit?', {
name: 'nearPosts',
waitOn: function(){
return Meteor.subscribe('geo');
}
});
答案 0 :(得分:3)
在您的路线中(转载如下),只有this.params.postsLimit
,没有this.params._id
Router.route('/near/:postsLimit?', {
name: 'nearPosts',
waitOn: function(){
return Meteor.subscribe('geo', this.params._id); //to change reference id
}
});
因此,发布函数会抛出错误,因为没有loc
来获取loc.lng
您的路线包含/near/:postsLimit?
。对于this.params._id
,您需要/near/:_id
或/near/:_id/:postsLimit?
之类的内容,它们会同时为您提供。请参阅docs。
编辑:您需要拥有一些包含纬度和经度的位置数据对象,以便传入您的订阅,如下所示:
Router.route('/near/:postsLimit?', {
name: 'nearPosts',
waitOn: function(){
return Meteor.subscribe('geo', locationObject);
}
});
由您决定使用locationObject
的内容。