gpt4 book ai didi

node.js - 编写 node.js 模块时有什么好的做法

转载 作者:IT老高 更新时间:2023-10-28 23:24:14 26 4
gpt4 key购买 nike

在为 node.js 编写模块时,我无法真正掌握什么是好的和坏的做法。一些模块似乎使用了很多导出,而另一些只使用了一个,等等。

例子:

var self;
var mymodule = function() {
self = this;
this.value1 = something;
this.value2 = somethingElse;
};
module.exports.init = function() {
return new mymodule();
};

mymodule.prototype.functionalityType1 = {
someFunction: function(callback) {
var a = self.value1;
anotherfunction(a, callback);
},
};
mymodule.prototype.functionalityType2 = {
someFunction: function(callback) {
var a = self.value2;
anotherfunction(a, callback);
},
};

var anotherfunction = function(v, callback) {
// do stuff with v
callback(result);
};

显然,每个原型(prototype)都包含多个函数。

这样的做法会被认为是好的做法吗?

最佳答案

这真的取决于你正在编写什么样的模块。导出多个函数适用于具有多种方法但几乎没有内部状态需要管理的实用程序模块。想想像 fs (文件系统)模块。有许多文件系统方法,但它们几乎都是独立的,没有共享状态。

如果你正在构建一个有多个方法的有状态模块,那么你可能应该只导出一个构造函数并允许客户端创建他们可以管理的该对象的实例。这方面的一个例子是 http 模块,它允许您创建一个服务器,并且该服务器具有影响其内部状态的方法。

如果您需要从一个模块中获得多个对象的实例,那么您真的别无选择,只能导出一个返回该对象实例的函数。

这与 .NET 等框架并没有什么不同,在这些框架中,您拥有文件系统 (System.IO) 类,这些类具有用于独立操作的静态方法,例如验证目录是否存在,或读取文件的内容,然后它们具有实例类对于维护状态的类。

关于node.js - 编写 node.js 模块时有什么好的做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9887748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com