我有一小段代码,就像这样,更新用户个人资料中的名称:
Meteor.users.update({_id: Meteor.userId()}, {$set:{"profile.name": name}});
当我在本地工作时,我可以毫无问题地使用Meteor.userId
或Meteor.userId()
。但是,当我部署到Modulus时,我遇到了问题。如果我没有操作符,它将执行初始$ set,但不会更多。如果我使用运算符,它的行为就像我期望的那样。
这是为什么?我假设我不应该在没有操作员的情况下使用它,但它有什么原因可以使用吗?
答案 0 :(得分:6)
功能Meteor.userId()
可用“任何地方但发布功能”
变量this.userId
可用于“Anywhere”(对于服务器端发布功能,也明确地调用它)。
答案 1 :(得分:0)
在尝试使用mocha进行单元测试时,我遇到了与Meteor.userId()相同的问题。
一个简单的解决方法是转到tasks.js
并将Meteor.userId()
替换为this.userId
是使用函数的this
上下文。