2

クライアントとサーバーで共有されているメソッドから、サーバーのみにある別のメソッドを呼び出すとどうなりますか? 2回呼び出されますか?サーバーから一度だけ?クライアントから一度だけ?

//lib/methods.js
Meteor.methods({
  test: function() {
    /*do some stuff that needs to update the UI quickly*/
    Meteor.call('doSomeSecureStuff', Meteor.isClient);
  }
});

//server/methods.js
import secureStuff from './secureStuff.js';
Meteor.methods({
  doSomeSecureStuff: function(originIsClient) {
    console.log(originIsClient);
    secureStuff();
  }
});

私のテストでは、サーバーから一度だけ呼び出されますが、ドキュメントが見つからないため、1) これが実際に起こることであり、2) 今後もこのままになることを確認したかったのです。

(例で示唆されているように、サーバー パーツを単にラップできないユース ケースはMeteor.isServer、サーバー上でのみ使用可能なコードをロードする必要がある場合です)

4

1 に答える 1

3

はい、サーバー上で 1 回だけです。

共有メソッドのサーバー部分をラップすることができますthis.isSimulation

共有メソッドを実行すると、最初にクライアントでシミュレーションが実行され、次にサーバーで実行されます - その結果でクライアントを更新します (通常は同じです - これがオプティミスティック UI と呼ばれる理由です)。

于 2016-03-10T01:30:31.287 に答える