1

私は小さなnodeJSベースの電子メールサーバーを書いています。オブジェクトがRequestあり、その中にすべてのユーザーを格納し、次のように定義された静的変数が 1 つあります。

Request.publicMemory = new Object();
Request.publicMemory.users = new Object();

Request.prototype.getPublicMemory = function() {
    return (Request.publicMemory);
};

User私はそれにオブジェクトを保存します:

function User(params) {
    this.mails = new Array();
    this.sent = new Array();
    var details = new Object();
    details.username = params.username;
    details.password = params.password
    return;
}

ご覧のとおり、それを返す静的関数もあります。

ここで、uesrs を追加すると、その変更が実際に行われますが、何かを変更すると、Request.publicMemory.usesrs[someuser]その変更は常に関数に対してローカルであり、他の場所では有効になりません。これが私がそれを行う方法の例です:

function addMail(request) { 
    var users = request.getPublicMemory().users;
    var to = request.parameters['to'];
    users[to].mails.push(mail);
}

これまでnodeJSで静的変数を使用したことがなく、まったく初めてなので、ばかげているかもしれませんが、まだ解決できません。何か案は?

ありがとう!

4

0 に答える 0