javascript - 将模块暴露给外部删除别名

标签 javascript node.js module require

我有 index.js 文件,它是我的 NPM 模块的“主入口”

在index.js中我有以下代码

index.js

var server = module.exports = {};

server.load = require("./controller/loader");

loader.js

function add(args) {
    loadFolder(args.path);
}
module.exports = {
    add:add
}

使用我的模块的模块(作为 package.json 上的 Node 依赖项)执行以下操作

var aMoudle = require("myModule");

aMoudule.load.add({path:__dirname + '/module'});

工作正常,但我的问题是否有办法以某种方式删除aMoudule.load.add中使用的负载? 并改为使用 aModule.add (但当然要将 add 保留在 loader 中,并且不要将其放入我的 index.js 中可以是一个解决方案,但我想避免它......:-) )

最佳答案

当您使用时:

server.load = require("./controller/loader"); 

loader的所有导出成员将被存储在server.load变量中 因此,如果您必须调用 add 您需要使用:

require('myModule').load.add()

而是从加载器中导出 add 方法本身,如下所示:

server.add = require("./controller/loader").add

这样只有 add 方法本身,您就可以直接访问 add 方法,如下所示:

require('myModule').add()

关于javascript - 将模块暴露给外部删除别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37525049/

相关文章:

javascript - 如何判断 POST 请求是否包含要在 Sails.js 中上传的文件?

javascript - 有没有办法从 NativeScript 应用程序通过 SSL 与 WebSocket 通信?

javascript - 为什么我的 readFileSync 函数没有执行?

javascript - 序列化 JSON 数组并将其解析为数组

Python - 缺少模块

python - 为python包创建模块

javascript - JS 四舍五入到小数点后两位

javascript - 在使用 React Router 渲染组件之前,如何等待 Promise 得到解决?

javascript - 如何使用正则表达式模式数组来检查 url

haskell - Haskell 的纯度是由类型系统或 IO 的实现强制执行的吗?