在尝试使用meteor中的一些基本帐户方法时,
我总是收到以下错误:
Uncaught TypeError: Accounts.[function] is not a function
这是令人困惑的,因为其他帐户方法(如Accounts.createUser)按预期工作。其他一些threads提到这可能与流星过时有关。事实并非如此,因为我正在运行最新版本(1.2.1)。
此外,如果我启动meteor shell
命令并搜索Accounts.addEmail或Accounts.setUsername,则shell声明它们确实是函数。
我使用的相关套餐是:
答案 0 :(得分:1)
就像Blaze在评论中所说,你提到的两种方法都只是服务器端,正如你在meteor doc中看到的那样。由于Meteor不附带内置角色包,它允许您确保这些方法由合适的人根据您的喜好调用。您必须使用Meteor.call('foo')
来调用这些方法,同时确保安全性或权限。
例如:
Meteor.methods({
addNewEmail: function(email) {
'use strict';
Accounts.addEmail(this.userId, email);
Accounts.sendVerificationEmail(this.userId, email);
return true;
}
});
这段代码确保调用该方法的人会向自己添加电子邮件而不是其他人。您还可以使用alanning:roles
。