1

我正在编写一个基于 nodeJS 的小型电子邮件服务器。我有一个Request对象,其中有一个存储所有用户的静态变量,其定义如下:

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