从一个模块到另一个模块公开模块
Expose modules from module to module
我的节点应用程序需要获取文件夹路径并从那里读取所有文件。
例如
moduleA
-server.js
-controller
--load.js
在 load.js 我有方法 (loadFolderFiles
) 应该获取文件路径
路径并从中加载所有文件。
现在我需要从模块 B 获取模块 A 并添加文件夹路径以读取文件
应用程序 B 的结构如下:
appB
-src
--files
---fileA.js
---fileB.js
-server.js
在 appB 中 server.js 我正在执行以下操作(加载模块 A)
var moduleA = require('moduleA')
moduleA.loadFolderFiles('/appB/src/files')
moduleA.start();
现在 moduleA 将开始为提供的路径加载文件(我想为此使用 glob
)。
我的问题是:
- 我将 moduleA 发布为 npm 模块,我的问题是我应该如何公开
moduleA.loadFolderFiles的API(推荐方式)?
2.How 我应该提供它的路径(相对/绝对)并读取文件吗
来自模块 appB?
这是 npm 中的 "moduleA"(用于测试)
https://www.npmjs.com/package/samplenodeapp
这是模块B加载模块A的代码
var sample = require('samplenodeapp');
sample.start();
我公开模块a的代码如下
var express = require('express');
var loadModule = require('./controller/load')
var app = express();
function start (){
app.listen(3001, function () {
console.log("App is listenting on port 3000");
})
}
module.exports = {
start:start,
loadModule:loadModule
};
如您所见,我从 controller/load 公开了方法,如下所示(为 loadFolderFiles 提供 api,可以吗?
如果需要设置加载文件夹,我建议将其移动到 start
参数或模块设置。
var moduleA = require('moduleA')({ loadFolder: '/path/to/folder' });
// or
var moduleA = require('moduleA');
moduleA.start({ loadFolder: '/path/to/folder' });
如果您选择将其移至模块设置,则应从该模块导出一个函数。
var createLoader = require('./controller/load');
module.exports = function (params) {
// params === { loadFolder: '/path/to/folder' }
var loadModule = createLoader(params.loadFolder);
return {
start: start,
loadModule: loadModule
}
};
我的节点应用程序需要获取文件夹路径并从那里读取所有文件。
例如
moduleA
-server.js
-controller
--load.js
在 load.js 我有方法 (loadFolderFiles
) 应该获取文件路径
路径并从中加载所有文件。
现在我需要从模块 B 获取模块 A 并添加文件夹路径以读取文件
应用程序 B 的结构如下:
appB
-src
--files
---fileA.js
---fileB.js
-server.js
在 appB 中 server.js 我正在执行以下操作(加载模块 A)
var moduleA = require('moduleA')
moduleA.loadFolderFiles('/appB/src/files')
moduleA.start();
现在 moduleA 将开始为提供的路径加载文件(我想为此使用 glob
)。
我的问题是:
- 我将 moduleA 发布为 npm 模块,我的问题是我应该如何公开 moduleA.loadFolderFiles的API(推荐方式)?
2.How 我应该提供它的路径(相对/绝对)并读取文件吗 来自模块 appB?
这是 npm 中的 "moduleA"(用于测试) https://www.npmjs.com/package/samplenodeapp
这是模块B加载模块A的代码
var sample = require('samplenodeapp');
sample.start();
我公开模块a的代码如下
var express = require('express');
var loadModule = require('./controller/load')
var app = express();
function start (){
app.listen(3001, function () {
console.log("App is listenting on port 3000");
})
}
module.exports = {
start:start,
loadModule:loadModule
};
如您所见,我从 controller/load 公开了方法,如下所示(为 loadFolderFiles 提供 api,可以吗?
如果需要设置加载文件夹,我建议将其移动到 start
参数或模块设置。
var moduleA = require('moduleA')({ loadFolder: '/path/to/folder' });
// or
var moduleA = require('moduleA');
moduleA.start({ loadFolder: '/path/to/folder' });
如果您选择将其移至模块设置,则应从该模块导出一个函数。
var createLoader = require('./controller/load');
module.exports = function (params) {
// params === { loadFolder: '/path/to/folder' }
var loadModule = createLoader(params.loadFolder);
return {
start: start,
loadModule: loadModule
}
};