NodeJS module.exports子模块

伙计们,试图包含其他.js文件,以便能够以下列方式从模块中导出。 这将使主模块更具可读性。 我试图包含来自其他function的代码。

我想这不是正确的方法。 有人能指导我正确的方向吗?

主要模块文件:

module.exports = { eval(fs.readFileSync('./extras/foo.js')+''); fdsa: function (barf, callback) { }, asdf: function (barf, callback) { }, } 

foo.js:

 foo: function (barf, callback) { ... callback(err, result); } 

如果你想要main.js基本上复制和增强foo所有的东西(这很愚蠢,但这似乎是你所要求的),你可以这样做:

main.js

 var foo = require('./extras/foo'); for (var prop in foo) { exports[prop] = foo[prop]; } exports.fdsa = function(... exports.asdf = function(... 

./extras/foo.js

 exports.foo = function(... 

注意,如果你把一个文件放在somedir/index.js ,它可以被要求为somedir ,这也可以是有用的。

如果你只是想通过main来访问foo ,并且可以使用子命名空间,只需要:

main.js

 exports.foo = require('./extras/foo'); 

那么你的调用代码可以这样做:

 require('./main').foo.foo(blah, callback); 

另外请注意,如果你想让整个foo模块成为一个函数,只需要:

 module.exports = function foo(barf, callback) {...