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