我已经阅读了很多关于如何在 node.js 中创建模块的文章,您可以使用 module.exports 将模块内部暴露给包含它的文件。真棒!
这反过来如何工作?我将使用以下示例:-)
USER.JS
function User() {
this.property = 'value';
this.doSomething = function() {
var getStuff = mainFileFunction();
// do something with getStuff
}
module.exports = User;
MAIN.JS
var myArray = [];
myArray.push('something');
myArray.push('something else');
mainFileFunction() {
for(thing in myArray) {
return myArray[thing];
}
}
var u = new user();
log(u.property); <--- THIS IS EXPOSED, COOL!
u.doSomething(); <--- This will throw an error because mainFileFunction is not defined in user.js :-(
如果我将 mainFileFunction 移动到用户文件,那么它仍然无法工作,因为 myArray 数组不会被定义......如果我也将它移动,我将无法使用它main 中的其他功能(我想要):-)
如果我在这里遗漏了一些非常明显的东西,我很抱歉......我想要的是从我包含的模块中公开我选择的部分(module.export 适用于此)但我也想从主文件中公开所有内容所有包括..
或者只是将一切暴露给一切?那是完全混乱和可怕的吗?
只是为了解释我在这里尝试做什么......我想在单独的文件中定义类,但我想将它们中的一堆实例化为主文件中的对象并将它们存储在数组中。我希望这些对象包含可以访问其他对象类型数组的方法。
多谢你们!:-)