2017-01-06 6 views
1

単純なMeteor-Angular 1アプリケーションを構築していますが、変数 'var conn'をサーバーのメソッド間で維持するのに問題があります。Meteor Server側の変数がメソッド間で継承されています

流星コード:

import {Meteor} from 'meteor/meteor'; 

var name; 

    Meteor.methods({ 
     'setName': function() { 
      name = 'Harry'; 
     }, 

     'getName': function() { 
      console.log(name); 
      }); 
     } 
    }); 

私は角度の同じテンプレートからのsetNameとのgetNameを呼び出していた場合、名前が持続します。あるテンプレートに名前を設定し、別のテンプレートでgetNameを呼び出すと、名前は 'undefined'になります。私はJavaの背景を持ち、流星群をAngularテンプレート間で同じオブジェクトとして維持する方法を知らない。事前にお手数をおかけしていただきありがとうございます。

答えて

0

あなたは3つのオプションがあります。

  1. ストアそれMongoDBの中にコレクション内を。
  2. /server/xxx.jsファイルで定義されているグローバル変数を使用します。
  3. 他のサーバー側の永続性ツール。たぶんhttps://github.com/lmaccherone/node-localstorage? ALT 2の場合

、あなたはMeteor.onConnection() [Docs]からconnection.idを使用して、クライアント接続に辞書オブジェクトとスコープのデータを作成することができます。

0

私はそれがまったく驚いています。そのコードが実際にサーバー上で実行されている場合は、各呼び出しで新しいコンテキストで呼び出されます。データを永続化したい場合は、データベースに永続化する必要があります。

関連する問題