Meteor.userId vs Meteor.userId()

Meteor.userId vs Meteor.userId(),meteor,userid,Meteor,Userid,我有一段简短的代码,如下面所示,用于更新我的用户配置文件中的名称: Meteor.users.update({u-id:Meteor.userId()},{$set:{“profile.name”:name}) 当我在本地工作时,我可以毫无疑问地使用Meteor.userId或Meteor.userId()。然而,当我部署到模块时,我遇到了一些问题。如果没有运算符,它将执行初始$set,但不再执行。如果我使用操作符,它的行为将与我预期的一样 为什么会这样?我假设我不应该在没有操作员的情况下使用它

我有一段简短的代码,如下面所示,用于更新我的用户配置文件中的名称:

Meteor.users.update({u-id:Meteor.userId()},{$set:{“profile.name”:name})

当我在本地工作时,我可以毫无疑问地使用
Meteor.userId
Meteor.userId()。然而,当我部署到模块时,我遇到了一些问题。如果没有运算符,它将执行初始$set,但不再执行。如果我使用操作符,它的行为将与我预期的一样

为什么会这样?我假设我不应该在没有操作员的情况下使用它,但是有没有一个原因可以解释它工作的原因呢

看一下

  • 函数
    Meteor.userId()
    在“除发布函数外的任何地方”都可用

  • 变量
    this.userId
    在“任何地方”都可用(服务器端发布函数也会显式调用该变量)

查看

  • 函数
    Meteor.userId()
    在“除发布函数外的任何地方”都可用

  • 变量
    this.userId
    在“任何地方”都可用(服务器端发布函数也会显式调用该变量)


我在尝试使用mocha进行单元测试时遇到了与Meteor.userId()相同的问题

一个简单的修复方法是转到
tasks.js
并将
Meteor.userId()
替换为
this.userId
,其中
是使用函数的
上下文

我在尝试使用mocha进行单元测试时遇到了与Meteor.userId()相同的问题

一个简单的修复方法是转到
tasks.js
并将
Meteor.userId()
替换为
this.userId
,其中
是使用函数的
上下文

Meteor.userId()和Meteor.userId不能相同。Meteor.userId返回函数Meteor.userId()返回字符串。我想你说的是这个.userId,它仅在出版物和Meteor.methods.Nope中可用。尽管可能很奇怪,我使用的是Meteor.userId,服务器端,而不是出版物。可能你正在将_id设置为
Meteor.userId
函数的字符串表示形式。类似于
“function(){…}”
。这将成功设置值,但这不是您想要的。你能打开mongo控制台,浏览一些文档,看看_id字段是什么样子的吗<代码>meteor mongo
来自CL@pahan,只是为了澄清,您编写了Meteor.userId返回一个函数,这是不正确的。函数返回值(可能),而
Meteor.userId
存储函数。Meteor.userId()和Meteor.userId不能相同。Meteor.userId返回函数Meteor.userId()返回字符串。我想你说的是这个.userId,它仅在出版物和Meteor.methods.Nope中可用。尽管可能很奇怪,我使用的是Meteor.userId,服务器端,而不是出版物。可能你正在将_id设置为
Meteor.userId
函数的字符串表示形式。类似于
“function(){…}”
。这将成功设置值,但这不是您想要的。你能打开mongo控制台,浏览一些文档,看看_id字段是什么样子的吗<代码>meteor mongo
来自CL@pahan,只是为了澄清,您编写了Meteor.userId返回一个函数,这是不正确的。函数返回值(可能),而
Meteor.userId
存储函数。