【发布时间】:2014-12-09 09:55:16
【问题描述】:
我一直在转换一些旧的 javascript 以在 node.js 模块中使用,这让我想到了模块模式选项。
我见过许多使用导出的结构。 module.exports 甚至原型,这让我想知道哪种方法被认为是最佳实践,为什么?
这是我用两种方式编写的代码中的一个精简模块示例。
选项 1:
var Helper = function() {};
Helper.latin_map = {"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A"};
Helper.prototype.urlise = function(orgString){
var lower = orgString.toLowerCase();
var latinised = lower.replace(/[^A-Za-z0-9\[\] ]/g, function(a) {
return Helper.latin_map[a] || a;
});
return latinised.replace(/\s+/g, '-')
}
module.exports = new Helper();
选项 2:
var latin_map = {"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A"};
module.exports = {
urlise : function(orgString){
var lower = orgString.toLowerCase();
var latinised = lower.replace(/[^A-Za-z0-9\[\] ]/g, function(a) {
return latin_map[a] || a;
});
return latinised.replace(/\s+/g, '-')
}
}
这是一个非常简单的示例,但我将对其进行扩展以在同一模块中提供多个可访问的功能,因此在我让事情变得过于复杂之前。我想我会就哪种方法被认为是最佳实践寻求一些建议。
【问题讨论】:
-
我会说你的选项 2 更标准。不过不要引用我的话,我这么说只是因为我从未见过其他任何东西
标签: javascript node.js node-modules