私はNode.jsのサーバー上のログインスクリプトを持っているので、ユーザがログインするとき、私は例えば、そのユーザのための新しいオブジェクトを作成中に、新しいオブジェクトにアクセスできるよう:Javascriptがすべてのスコープ
今// MOCK-UP: NOT ACTUAL CODE
db.query('QUERY', function(err, rows, fields){
if(!err){
var User = new _User(row[0].id, row[0].name, ...);
// Continue on
} else { throw err }
});
とに誰かがログインするたびに新しい_Userオブジェクトを作成して、グローバルにアクセスできるようにするにはどうすればいいですか?私はクラスにすべての現在のユーザー情報を格納し、すべてのクラスメソッドを使用するだけでなく、任意の時点でそれを簡単に取得できるようにしたい。
EDIT:上書きする場合は、var Player;
のどこかを初期化することをお勧めしますか?わかりません。ええ、助言が必要です。
P.S.:ログインスクリプトはソケットイベント内にあり、調整に合わせてコードを書き直しても構いません。
P.P.S:私はソケットの内部に情報を保存したくありません。
すべてのユーザーの要求が同じグローバルセットにアクセスするため、異なるユーザーがお互いのデータをただちに取得するため、単一のグローバルを使用してサーバー環境内のユーザーを追跡することはできません。あなたがここで望むのはセッションです。 Expressとexpress-sessionを使用することをお勧めします。これにより、すべてのリクエストハンドラが利用できる各ユーザのセッションオブジェクトが自動的に作成されます。そのセッションオブジェクトに任意のものを格納することができ、それはそのユーザーの要求だけで利用可能になります。 – jfriend00
@ jfriend00でも、ソケットと同じことがありますね。それは私が現在使っているものですが、別のユーザークラスを持ちたいと思っています。 – Micard
私はあなたが何を意味するのか分かりません。しかし、同じことがソケットを使っているのですか?そうではありませんか?ソケットがユーザーとの接続を表している場合は、ソケットオブジェクト自体に '.user'プロパティを追加できます。 – jfriend00