0
我遇到了这个看似微不足道的东西的麻烦,哈尔!
我有这个用户文档:流星 - 验证新的用户文档serverside
userData = {
account: {
type: 'free'
},
profile: {
name: 'Artem',
},
username: '[email protected]',
password: '123'
};
我敢送客户端:Accounts.createUser(userData);
然后服务器端我要检查,如果帐户类型等于“免费”。如果没有 - 我要放弃新用户创建(希望抛出错误客户端)
有我的文档已经找到2个函数大概可以帮我做到这一点:
- Accounts.validateNewUser 问题:它收到“不包含除
profile, username, password, email
以外的其他属性的”修剪“用户对象。因此,我无法验证account.type
,因为它不存在于正在验证的用户对象上。 - Accounts.onCreateUser 问题:在通用用户对象被创建后调用它,并且我无法取消在Users集合中插入新文档。它绝对需要返回用户文档。如果我返回
undefined
它会在服务器上引发错误:Exception while invoking method 'createUser' Error: insert requires an argument
它也不允许抛出方法错误(因为它不是方法) - >因此我不能记录错误客户端。
你怎么样发送帐户类型的数据作为配置文件对象的一部分?然后你将可以在'Accounts.validateNewUser'中访问这个值并进行验证。 – umesh
奇怪的是,你必须这样做。我提出了一个问题 - https://github.com/meteor/meteor/issues/6231 – avalanche1