2016-07-23 34 views
0

我有更新用戶字段的方法。這工作,但只是在客戶端,如果我重新加載應用程序此字段再次從0開始。更新用戶集合

方法:

Meteor.methods({ 
    addPublication: function (publications) { 
     check(publications, Number); 

     Meteor.users.update(this.userId, { 
      $set:{ 
       publications: publications 
      } 
     }); 
    } 
}); 

控制器:

Meteor.call('addPublication', Meteor.user().publications + 1); 

允許新的價值觀:

Meteor.users.allow({ 
    update: function(userId, user) { 
     console.log('UPDATE USER'); 
     return true; 
    } 
}); 

發佈:

  • 服務器

Meteor.publish( '用戶',函數(){ 返回Meteor.users.find({},{ 字段:{ 電子郵件:1, 輪廓:1,用戶名 :1, 出版物:1, } }); });

  • 客戶

Meteor.subscribe( '用戶');

我在這裏錯過了什麼嗎?

+0

- 沒有錯誤,但「更新用戶」從來沒有顯示在服務器 –

+0

也許一個愚蠢的問題,但在服務器上定義你的方法是什麼? – ghybs

+0

不在isServer內部,而是在我的API文件夾中與其餘的方法和集合一起。無論如何,我試圖把它裏面isServer並且具有相同的結果 –

回答

0

你應該公佈你的方法還,否則此方法不作任何變動數據庫

Meteor.publish('addPublication'); 

如果允許更新

Meteor.users.allow({ 
    update: function(userId, user) { 
     console.log('UPDATE USER'); 
     return true; 
    } 
}); 

有沒有從這種方法需要。你可以去客戶端:

Meteor.users.update(Meteor.userId(), { 
     $set:{ 
      publications: publications 
     } 
    }); 
+0

使用方法,而不是一個正常的更新的原因從我的控制器是因爲另一個用戶推薦它。我試過,甚至在客戶端,出版物沒有更新。 我發表的方法(不知道爲什麼,這其中有是唯一一個出版),結果是一樣的,沒有什麼變化。 –