【问题标题】:Expose module to outside remove alias将模块暴露给外部删除别名
【发布时间】:2016-05-30 11:53:17
【问题描述】:

我有 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 的节点依赖项)执行以下操作

var aMoudle = require("myModule");

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

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

【问题讨论】:

    标签: javascript node.js module require


    【解决方案1】:

    当你使用时:

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

    加载器的所有导出成员都将存储在 server.load 变量中 因此,如果你必须调用 add 你需要使用:

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

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

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

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

    require('myModule').add()
    

    【讨论】:

    • 您能否编辑您提出的答案以扩展其作用以及它如何解决 OP?
    猜你喜欢
    • 2019-06-25
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2015-10-31
    • 2018-06-27
    • 2021-09-18
    • 1970-01-01
    相关资源
    最近更新 更多