簡體   English   中英

流星方法未在服務器上運行

[英]Meteor method not running on server

我有以下代碼,

Meteor.methods({
  markPaid: function(expense) {
    check(this.userId, String);
    check(expense.id, String);

    Expenses.update({'_id': expense.id}, {$set: {paid: true}}, function(error) {
      return error;
    });
  }
});

被稱為

Meteor.call('markPaid', expense, function(error, result) {
  //handle error if any.
});

當我從我的客戶端調用它時,代碼在客戶端執行,正如流星所謂的樂觀 UI 所預期的那樣,但該方法不運行服務器端。 我的實際數據庫永遠不會更新。

謝謝!

根據 Meteor.call 上的 Meteor 文檔(參見https://docs.meteor.com/api/methods.html#Meteor-call

Meteor.call(name, [arg1, arg2...], [asyncCallback])

論據

arg1, arg2... EJSON-able Object 可選方法參數

參數必須是 JSON。 片刻對象不是 JSON。 這就是為什么像您一樣傳遞 id 有效,但您的完整 JS 對象無效。

該方法是否在observechanges 中被調用? 我有一個類似的問題:

let a = MyCollection.find({something:'something'}); 
a.observeChanges ({
    changed( id, fields) {
        console.log('Im here');
        Meteor.call ('awesomeMethod', 
            'param',
             (error, ans) => {
                 handel error; return; }                                    
                 console.log(ans);
             }
         );                
    }
});

同樣的事情也在發生; 只有模擬在運行,但是從控制台調用該方法效果很好,因此我決定將 Meteor 調用更改為其他地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM