[英]Expose modules from node NPM application
我有节点应用程序(用作npm moudule并用作其他节点应用程序对package.json的依赖),它需要提供对某些内部模块的访问权限(对于使用我的包作为依赖项的应用程序)所有这些模块使用export来获取需要消耗的函数
我的“主要”模块是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;
....
我有额外的模块暴露在外...
这工作正常,但我的问题是在节点中是否有更好/更清洁的方法呢?
我发现按照你描述的方式做它很好。
您可以通过在目录中添加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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.