我有一小段代码,如下所示,用于更新用户配置文件中的名称:
Meteor.users.update({_id: Meteor.userId()}, {$set:{"profile.name": name}});
当我在本地工作时,我可以顺利地使用Meteor.userId或Meteor.userId()。然而,当我部署到Modulus时,我遇到了问题。如果上面没有运算符,它将执行初始$set,但不会再做更多操作。如果我使用运算符,它的行为与我预期的一样。
为什么会这样呢?我假设我一开始就不应该在没有操作符的情况下使用它,但是有没有理由让它工作呢?
发布于 2015-03-03 09:42:33
在documentation中查看
Meteor.userId()函数可用于"Anywhere publish functions“
this.userId可用于"Anywhere”(服务器端发布函数也显式调用该变量)。发布于 2017-09-21 02:11:30
在尝试使用Meteor.userId进行单元测试时,我也遇到了同样的问题。
一个简单的解决方法是转到tasks.js,将Meteor.userId()替换为this.userId,也就是使用函数的this上下文。
https://stackoverflow.com/questions/24320754
复制相似问题