我的一个 node.js 模块太大了,所以我把它分成几个更小的(子)模块。
我将所有相关对象复制并粘贴到每个子模块中,现在看起来像
var SOME_CONSTANT = 10;
function my_func() { etc... };
现在我想导出每个子模块中的所有内容,集体,而不必明确地说exports.SOME_CONSTANT = SOME_CONSTANT
一百万次(我发现这既丑陋又容易出错)。
实现这一目标的最佳方法是什么?
我的一个 node.js 模块太大了,所以我把它分成几个更小的(子)模块。
我将所有相关对象复制并粘贴到每个子模块中,现在看起来像
var SOME_CONSTANT = 10;
function my_func() { etc... };
现在我想导出每个子模块中的所有内容,集体,而不必明确地说exports.SOME_CONSTANT = SOME_CONSTANT
一百万次(我发现这既丑陋又容易出错)。
实现这一目标的最佳方法是什么?
我假设您不想导出每个局部变量。
这些天我会设法自动化这个,但现在我经常使用这种技术。
var x1 = { shouldExport: true } ;
// 在你喜欢的编辑器中创建一个宏来搜索和替换,这样
x1.name = value ; // instead of var name = value
和
name becomes x1.name
// 模块主体
for ( var i in x1) { exports.better_longer_name[i] = x1[i] ;}
//or if you want to add all directly to the export scope
for ( var i in x1) { exports[i] = x1[i] ; }
module.exports = {
SOME_CONSTANT_0 : SOME_CONSTANT_1 ,
SOME_CONSTANT_1 : SOME_CONSTANT_2 ,
SOME_CONSTANT_2 : SOME_CONSTANT_3
}
那么为什么你需要那个“百万”常数来出口呢?