Meteor“TypeError:无法读取未定义的属性'0'”

时间:2016-02-15 12:50:52

标签: javascript mongodb meteor

我是Meteor的新手。

我要做的是在邀请他们加入服务(已完成)时向某人发送电子邮件,但我希望该电子邮件能够动态填充邀请他们加入详细信息的用户。这是我的代码:

    Meteor.publish('profile', function() {
        return Meteor.users.find(this.userId);
    });



    var emailData = {
        existingUser: 'currentUser().profile.displayName',
        existingOrganisation: 'currentUser().profile.organisation',
        existingEmail: Meteor.users.emails[0].address
    };

    //Code taken from Meteor Docs to customise content of enrollment email
    Accounts.emailTemplates.siteName = "Amendd";
    Accounts.emailTemplates.from = "Amendd <no-reply@amendd.com>";
    Accounts.emailTemplates.enrollAccount.subject = function (user) {
        return "Welcome to Amendd";
    };
    Accounts.emailTemplates.enrollAccount.html = function (user, url) {
        return  SSR.render('enrollAccountEmail', emailData) + url;
    };

其中enrollAccount.html是我的'/ private'文件夹中的单独文件。我在现有的用户和现有的组织变量之后放置了' - ',而我则专注于让电子邮件字段工作。

我在终端中保存并运行项目时出现的错误消息是

  

TypeError:无法读取未定义“

的属性”0“

它指向nowEmail变量中的[0]。

任何人都可以解释我所拥有的问题吗?

更新

对此的修复是在函数中移动emailData对象:

            SSR.compileTemplate('enrollAccountEmail', Assets.getText('enrollAccountEmail.html'));
            Accounts.emailTemplates.siteName = "Amendd";
            Accounts.emailTemplates.from = "Amendd <no-reply@amendd.com>";
            Accounts.emailTemplates.enrollAccount.subject = function (user) {
                return "Welcome to Amendd , " + user.email;
            };
            Accounts.emailTemplates.enrollAccount.html = function (user, url) {
            var emailData = {
                existingUser: Meteor.user().profile.displayName,
                existingOrganisation: Meteor.user().profile.organisation,
                existingEmail: Meteor.user().emails[0].address
            };

                return  SSR.render('enrollAccountEmail', emailData) + url;
            };

1 个答案:

答案 0 :(得分:2)

我不相信currentUser()在服务器上有效。尝试使用Meteor.user(),除了发布功能外,它可以在任何地方使用。

Meteor.user()。电子邮件[0]。地址

http://docs.meteor.com/#/full/meteor_user