请注意,尝试包含其他.js文件,以便能够以下列方式从模块导出。这将使主模块更具可读性。我正在尝试包括来自其他函数的代码。
我想这不是正确的方法。有人能引导我朝正确的方向前进吗?
主模块文件:
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);
}发布于 2014-03-02 00:07:50
如果您希望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) {...发布于 2021-06-20 10:29:41
使用es6模块模式实现这一点有一种非常简单的方法。所以在foo.js
export function foo(barf, callback) {
...
callback(err, result);
}在main.js中,你会发现,
export * from './foo.js';
export function fdsa(barf, callback) {
...
}https://stackoverflow.com/questions/22122089
复制相似问题