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

时间:2016-05-30 11:53:17

标签: 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的节点依赖)执行以下操作

var aMoudle = require("myModule");

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

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

1 个答案:

答案 0 :(得分: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()
相关问题