gpt4 book ai didi

javascript - 从 Node NPM 应用程序公开模块

转载 作者:搜寻专家 更新时间:2023-10-31 23:24:08 24 4
gpt4 key购买 nike

我有 Node 应用程序(用作 npm 模块并被其他 Node 应用程序用作对 package.json 的依赖)需要提供对某些内部模块(对使用我的包作为依赖项的应用程序)的访问所有这些模块都对需要使用的功能使用导出

我的“主要”模块是 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;
....

我有额外的模块暴露在外面......

这是可行的OK,但我的问题是在 Node 中是否有更好/更清洁的方法来做到这一点?

最佳答案

我发现按照您描述的方式进行操作效果很好。

您可以通过在目录中添加一个 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

关于javascript - 从 Node NPM 应用程序公开模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37445755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com