我正在编写一个基于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中使用静态变量,而且我对它很新,所以这可能很傻,但我仍然无法解决它。有什么想法吗?
谢谢!