Javascript 为当前用户配置文件meteor.js添加文档

Javascript 为当前用户配置文件meteor.js添加文档,javascript,meteor,Javascript,Meteor,我想创建一个表单,为注册用户添加其他配置文件详细信息(地址、电话号码)。 这是我的js文件: Template.userProfileEdit.events({ 'submit form': function(event, template){ event.preventDefault(); var addressVar = template.find('#inputaddress'); var profile = {};

我想创建一个表单,为注册用户添加其他配置文件详细信息(地址、电话号码)。 这是我的js文件:

    Template.userProfileEdit.events({
    'submit form': function(event, template){
        event.preventDefault();
        var addressVar = template.find('#inputaddress');
        var profile = {};
        var fields = template.findAll('input[type="text"]');
        for(var i = 0; i<fields.length; i++) {
            profile[$(fields[i]).attr('name')] = $(fields[i]).val();
        }
        if(Meteor.users.update(Meteor.userId(), {$set: {profile: profile}})) {
            $(template.find('#thirdNodal')).modal('hide');
        }
    }
});

Template.userProfileEdit.helpers({
    address: function(){
        return Meteor.user().profile.address;
    }
});
Accounts.findUserByUsername = function (username) {
    return Accounts.findUserByQuery({
        username: username
    });
};
Accounts.findUserByEmail = function (email) {
    return Accounts.findUserByQuery({
        email: email
    });
};
Template.userProfileEdit.events({
“提交表单”:函数(事件、模板){
event.preventDefault();
var addressVar=template.find('#inputaddress');
var profile={};
var fields=template.findAll('input[type=“text”]”);

对于(var i=0;i,这离一个有效的解决方案不远了,但我看到了几个问题

Meteor.users.update(Meteor.userId(),{$set:{profile:profile})
将覆盖配置文件对象,擦除已存储在其中的任何内容。此外,授予用户客户端权限以更新用户文档是一个即将发生的安全灾难。理想情况下,您应该调用服务器文件夹中的meteor方法,以便通过验证来严格控制权限服务器上的更改

其次,如果您使用meteor的模板系统(blaze),您几乎不必使用jQuery选择器来检索值。相反,您可以查找HTML表单,以便在单击提交按钮时使用模板事件轻松访问表单字段


您应该完成,它将为您提供所有这些信息和更多信息。

这离一个可行的解决方案不远,但我看到了几个问题

Meteor.users.update(Meteor.userId(),{$set:{profile:profile})
将覆盖配置文件对象,擦除已存储在其中的任何内容。此外,授予用户客户端权限以更新用户文档是一个即将发生的安全灾难。理想情况下,您应该调用服务器文件夹中的meteor方法,以便通过验证来严格控制权限服务器上的更改

其次,如果您使用meteor的模板系统(blaze),您几乎不必使用jQuery选择器来检索值。相反,您可以查找HTML表单,以便在单击提交按钮时使用模板事件轻松访问表单字段


您应该完成,它将为您提供所有这些信息和更多信息。

“此外,授予用户客户端更新用户文档的权限是一个即将发生的安全灾难。”我同意,但这是
帐户的默认行为。我有点惊讶,但是.OP,请参阅修复链接。疯狂,对吗?
配置文件
在默认情况下是免费的。请注意,如果OP真的告诉了他当前代码出现了什么问题,你的答案可能会更加完善,所以你一般应该对问题发表评论如果还不够,就要求澄清。“此外,授予用户客户端更新用户文档的权限是一场即将发生的安全灾难。”我同意,但这是
帐户的默认行为。我有点惊讶,但是.OP,请参阅修复链接。疯狂,对吗?
配置文件
在默认情况下是免费的。请注意,如果OP真的告诉了他当前代码出现了什么问题,你的答案可能会更加完善,所以你一般应该对问题发表评论如果还不够,请澄清。你能详细说明你的代码是如何工作的吗?你期望的是什么,以及实际发生的是什么?如果你遇到异常,请将发生异常的那一行和异常详细信息发布出来。你能详细说明你的代码是如何工作的吗?你期望的是什么,以及实际发生的是什么?如果你遇到了异常ion,发布发生异常的行和异常详细信息。
<tr>
    <td>Address</td>
    <td>{{currentUser.profile.address}}</td>
</tr>