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) {...