Javascript 如何向meteor帐户添加自定义用户数据

Javascript 如何向meteor帐户添加自定义用户数据,javascript,meteor,client-server,meteor-accounts,Javascript,Meteor,Client Server,Meteor Accounts,我正在尝试构建一个系统,以便MeteorJS中内置的默认帐户系统将有一个朋友列表。不幸的是,这根本不起作用,我也不明白为什么。我目前正试图简单地向user.profile添加一个friendList数组,然后简单地将添加的用户附加到该列表的末尾。 代码如下: 服务器: 客户: Template.addFriendPage.events({ "keypress .addFriendByUsername": function(event, template){ if(even

我正在尝试构建一个系统,以便MeteorJS中内置的默认帐户系统将有一个朋友列表。不幸的是,这根本不起作用,我也不明白为什么。我目前正试图简单地向user.profile添加一个friendList数组,然后简单地将添加的用户附加到该列表的末尾。 代码如下: 服务器:

客户:

Template.addFriendPage.events({
    "keypress .addFriendByUsername": function(event, template){
        if(event.which == 13){
            event.preventDefault();

            var user = Meteor.userId();
            var friendUsername = template.find(".addFriendByUsername").value;
            console.log(friendUsername);
            console.log(user);
            console.log(Meteor.call("addFriend",friendUsername));
            if(Meteor.call("addFriend", friendUsername)){
                alert("successfully added friend!");
                template.find(".addFriendByUsername").value = "";   

            } else alert("not a valid username");
        }
    }
  });

html只是一个模板,我可以在其中输入用户名。我知道我必须把当前用户添加到其他用户的好友列表中,但我想先让它工作。

您的主要问题是设置推送。相反,您需要使用
$push

var userId = Meteor.user();
Meteor.users.update(userId, {$push:'profile.friendList':friendUserId});

第二,我认为在用户配置文件上存储好友是一个不好的想法。考虑创建一个朋友集合。 从控制台调用这个方法有效吗?我已经研究了它,并考虑了两种创建好友列表的方法,但从我所知道的情况来看,这都归结为个人偏好。这两种方式似乎都没有太大的优势。谢谢!我还不熟悉使用mongodb,所以我不知道有这样的命令。成功了。
var userId = Meteor.user();
Meteor.users.update(userId, {$push:'profile.friendList':friendUserId});