[英]NodeJS module.exports submodule
伙計們,嘗試包含其他 .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);
}
如果您希望main.js基本上復制和增強 foo 的所有內容(這很愚蠢,但這似乎是您要的),您可以這樣做:
主文件
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
並且可以使用子命名空間,請執行以下操作:
主文件
exports.foo = require('./extras/foo');
然后您的調用代碼可以執行以下操作:
require('./main').foo.foo(blah, callback);
另請注意,如果您希望整個foo
模塊成為一個函數,只需執行以下操作:
module.exports = function foo(barf, callback) {...
使用 es6 模塊模式有一種非常簡單的方法可以實現這一點。 所以在 foo.js 中
export function foo(barf, callback) {
...
callback(err, result);
}
在 main.js 中,你會有類似的東西,
export * from './foo.js';
export function fdsa(barf, callback) {
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.