Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript meteor自动将地理位置保存到用户文档_Javascript_Mongodb_Meteor_Geolocation - Fatal编程技术网

Javascript meteor自动将地理位置保存到用户文档

Javascript meteor自动将地理位置保存到用户文档,javascript,mongodb,meteor,geolocation,Javascript,Mongodb,Meteor,Geolocation,我想自动跟踪我页面上的用户。 他们的立场应该在mongoDB中进行反应性更新。 因此,我将在用户文档中添加一个新属性“location”。 mdg:geolocation包已经为浏览器提供的位置数据提供了一个反应源: Geolocation.latLng(); 然而,当职位发生变化时,我很难更新用户文档。 我怎样才能触发 Meteor.users.update(Meteor.userId(), { $set: ...}); 数据库更新?我尝试了以下方法,但没有成功: Meteor.star

我想自动跟踪我页面上的用户。 他们的立场应该在mongoDB中进行反应性更新。 因此,我将在用户文档中添加一个新属性“location”。 mdg:geolocation包已经为浏览器提供的位置数据提供了一个反应源:

Geolocation.latLng();
然而,当职位发生变化时,我很难更新用户文档。 我怎样才能触发

Meteor.users.update(Meteor.userId(), { $set: ...});
数据库更新?我尝试了以下方法,但没有成功:

 Meteor.startup = function()
{
    Tracker.autorun(function () {
        var location = Geolocation.latLng();
        console.log(location);
        Meteor.users.update(Meteor.userId(), {
            $set: {
                   location: {
                        type: 'Point' ,
                        coordinates: [location.lng,  location.lat]
                   }
            }
        });
    });
}
发件人:

默认情况下,服务器发布用户名、电子邮件和配置文件 (可由用户写入)

因此,我认为您只需在以下位置更改代码:

        Meteor.users.update(Meteor.userId(), {
            $set: {
                   profile.location: {
                        type: 'Point' ,
                        coordinates: [location.lng,  location.lat]
                   }
            }
        });
现在我看到了错误。 这不是:

 Meteor.startup = function(){};
它是


你能说出你犯了什么错误吗?我一点也没犯错误。似乎从来没有触发过跟踪器自动运行,因为console.log(location)不会为提示打印任何内容。我更改了它,它肯定是发布的,因为我从Meteor.users.find().fetch()获得了位置;问题是,跟踪器从未被触发,因此更新不会发生。是否启用了地理定位?您是使用浏览器还是移动设备进行开发?应用程序在浏览器(Chrome)中运行,地理位置已打开(允许Chrome共享我的当前位置)。我还使用Chrome传感器模拟来更新位置值。我有一个类似的地理定位代码,它可以工作。唯一的区别是我的Tracker.autorun不在Meteor.startup内
 Meteor.startup(function(){});