gpt4 book ai didi

javascript - 从一个模块到另一个模块公开模块

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:30 26 4
gpt4 key购买 nike

我有一个 Node 应用程序,需要获取文件夹的路径并从那里读取所有文件。

例如

moduleA
-server.js
-controller
--load.js

在 load.js 中,我有方法(loadFolderFiles),它应该获取文件的路径路径并从中加载所有文件。

现在,我需要从模块 B 获取模块 A 并添加文件夹路径来读取文件

应用程序 B 的结构如下:

 appB
-src
--files
---fileA.js
---fileB.js
-server.js

在 appB server.js 中,我正在执行以下操作(加载 moduleA)

var moduleA = require('moduleA')
moduleA.loadFolderFiles('/appB/src/files')

moduleA.start();

现在 moduleA 将开始加载所提供路径的文件(我想使用 glob )。

我的问题是:

  1. 我将 moduleA 发布为 npm 模块,我的问题应该如何公开moduleA.loadFolderFiles的API(推荐方式)?

2.我应该如何提供它的路径(相对/绝对)并读取文件来自模块 appB?

这是 npm 中的“moduleA”(用于测试) https://www.npmjs.com/package/samplenodeapp

这是moduleB加载moduleA的代码

 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 /加载中公开了方法,如下所示(为 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
}
};

关于javascript - 从一个模块到另一个模块公开模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37011594/

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