繁体   English   中英

从节点NPM应用程序中公开模块

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM