我的节点应用程序(用作npm moudule并用作其他节点应用程序对package.json的依赖)需要提供对某些内部模块的访问权限(对于使用我的包的应用程序)依赖) 所有这些模块都使用导出来完成需要消费的功能
我的主要" module是index.js
在里面我做了以下几点:
var appState = require("./utils/appState");
var appLclStorage = require("./utils/AppLocalStorage");
var processHandler = require("./controller/processHandler");
....
var appApi = module.exports = {};
appApi.appState = appState;
appApi.appLclStorage = appLclStorage;
appApi.processHandler = processHandler;
....
我有额外的模块在外面曝光......
这是确定,但我的问题是在节点中是否有更好/更清晰的方法吗?
答案 0 :(得分:1)
我觉得按照你描述的方式做得很好。
您可以通过在目录中添加index.js文件并将其从同一目录导出其他文件来构建它。然后require
目录来获取它们。
// add.js
module.exports = function (num1, num2) {
return num1 + num2;
};
// subtract.js
module.exports = function (num1, num2) {
return num1 - num2;
};
// multiply.js
module.exports = function (num1, num2) {
return num1 * num2;
};
// index.js
var Calc = {};
require('fs').readdirSync(__dirname).forEach(function (file) {
if (file !== 'index.js') {
var fileName = file.replace('.js', '');
Calc[fileName] = require('./' + fileName);
}
});
module.exports = Calc;
// main.js
var Calc = require('./calc');
var zero = Calc.subtract(1, 1);
var one = Calc.multiply(1, 1);
var two = Calc.add(1, 1);
使用以下文件结构:
├── calc
│ ├── add.js
│ ├── index.js
│ ├── multiply.js
│ └── subtract.js
└── main.js