Meteor user.manual变量增量错误

时间:2014-01-31 21:46:41

标签: javascript meteor

我在Meteor.methods中遇到了一个函数问题。

目前,它是:

click: function () {
Meteor.users.update({_id: this.userId}, {$inc: {'money': 25 }});
}

但是,我想通过存储在用户手册中的变量变量来增加资金。像这样:

click: function () {
Meteor.users.update({_id: this.userId}, {$inc: {'money': user.manual }});
}

但是,当我尝试这样做时,我收到了这个错误:

I20140131-16:33:40.876(-5)? Exception while invoking method 'click' ReferenceError: user is not defined
I20140131-16:33:40.876(-5)?     at Meteor.methods.click (app/server/server.js:29:62)
I20140131-16:33:40.876(-5)?     at maybeAuditArgumentChecks (packages/livedata/livedata_server.js:1346)
I20140131-16:33:40.876(-5)?     at packages/livedata/livedata_server.js:539
I20140131-16:33:40.876(-5)?     at _.extend.withValue (packages/meteor/dynamics_nodejs.js:35)
I20140131-16:33:40.877(-5)?     at packages/livedata/livedata_server.js:538
I20140131-16:33:40.877(-5)?     at _.extend.withValue (packages/meteor/dynamics_nodejs.js:35)
I20140131-16:33:40.877(-5)?     at _.extend.protocol_handlers.method (packages/livedata/livedata_server.js:537)
I20140131-16:33:40.877(-5)?     at packages/livedata/livedata_server.js:437

这是我的onCreateUser方法:

Accounts.onCreateUser(function(options, user) {
user.money = 0;
user.rate = 1;
user.manual = 25;
return user;
})

我在user.rate文件的另一部分也成功地用户user.rate:

  Meteor.startup(function () {
     Meteor.setInterval(function() {
       Meteor.users.find({}).map(function(user) {
          Meteor.users.update({_id: user._id}, {$inc: {'money': user.rate}})
     });
     }, 1000)
  });

当我将user.rate更改为user.manual时,money会按user.manual值递增。所以我很困惑为什么user.manual不能在Meteor.methods中工作。为什么说用户没有定义?

谢谢!

1 个答案:

答案 0 :(得分:1)

错误告诉您到底出了什么问题。

ReferenceError: user is not defined

您应该使用Meteor.user()

  

Meteor.user()Anywhere,但发布函数

     

获取当前用户记录,如果没有用户登录,则返回null   反应数据源。