我正在构建一个相当大的node.js客户端库,我希望能够命名空间'它的一部分,以使其更有条理。例如:
var client = new Client(config);
client.activities.get(activityId, function(activity) {
...
});
...
client.user.get(userId, function(user) {
...
});
我目前正在尝试在模块中执行类似的操作:
function Client(config) {
this.config = config;
}
Client.prototype.activities = require('./activities');
Client.prototype.user = require('./user');
module.exports = Client;
但是当'得到'在活动' submodule'," this"当然是用于模块,而不是外部客户端功能。基本上,两个子模块都需要访问外部配置信息(在此示例中为' config')。在node.js中执行此操作的最佳做法是什么?
答案 0 :(得分:1)
我认为您的计划存在建模问题,new X()
会将X.prototype
的每个属性引用复制到新项目中;例如,X.myFunction
与X.prototype.myFunction
完全相同;但不会创建myFunction
的新副本。
听起来如果activities
是客户端的一部分(与StreetAddress
可能相同),您实际上希望activities
成为一个类,而不是一个模块,并且Client
在构建时创建新实例。这不是prototype
对我有用的东西。如果我错了,也许你可以展示一个基本操作的例子activities
将用于。