我希望将大型配置.js文件拆分为多个较小的文件,但仍然将它们组合到同一个模块中。这是常见做法,最佳方法是什么,以便在添加新文件时不需要扩展模块。
添加新文件时的例子,但不需要更新math.js.
数学 - add.js - subtract.js - math.js
// add.js
module.exports = function(v1, v2) {
return v1 + v2;
}
// subtract.js
module.exports = function(v1, v2) {
return v1 - v2;
}
// math.js
var add = require('./add');
exports.add = add;
var subtract = require('./subtract');
exports.subtract = subtract;
// app.js
var math = require('./math');
console.log('add = ' + math.add(5,5));
console.log('subtract =' + math.subtract(5,5));
答案 0 :(得分:2)
你可以这样做
//Called when a RINGING response is received for the INVITE request sent.
public override void OnRingingBack(SipAudioCall call)
{
base.OnRingingBack(call);
}
答案 1 :(得分:2)
您可以使用传播运算符...
,或者如果它不起作用Object.assign
。
module.exports = {
...require('./some-library'),
};
或者:
Object.assign(module.exports, require('./some-library'));
答案 2 :(得分:1)
如果您的NodeJ允许spread(...)运算符(选中here),您可以执行以下操作:
module.exports = {
...require('./src/add'),
...require('./src/subtract')
}
答案 3 :(得分:0)
您可以创建一个子文件夹来自动分配功能和其他对象。
mymodule.js
const pluginDir = __dirname + '/plugins/';
const fs = require('fs');
module.exports = {};
fs.readdirSync(pluginDir).forEach(file => {
Object.assign(module.exports,require(pluginDir + file));
});
plugins / mymodule.myfunction.js
module.exports = {
myfunction: function() {
console.log("It works!");
}
};
index.js
const mymodule = require('mymodule.js');
mymodule.myfunction();
// It works!