模块导出类Nodes.js

我是一个Nodes.js noob,我试图让我的头模块结构。 到目前为止,我有一个模块(testMod.js)定义了这个类的构造:

var testModule = { input : "", testFunc : function() { return "You said: " + input; } } exports.test = testModule; 

我试图调用testFunc()方法:

 var test = require("testMod"); test.input = "Hello World"; console.log(test.testFunc); 

但是我得到一个TypeError:

 TypeError: Object #<Object> has no method 'test' 

我做错了什么?

这是一个命名空间问题。 马上:

 var test = require("testMod"); // returns module.exports test.input = "Hello World"; // sets module.exports.input console.log(test.testFunc); // error, there is no module.exports.testFunc 

你可以这样做:

 var test = require("testMod"); // returns module.exports test.test.input = "Hello World"; // sets module.exports.test.input console.log(test.test.testFunc); // returns function(){ return etc... } 

或者,而不是module.exports = testModule你可以做module.exports = testModule ,然后:

 var test = require("testMod"); // returns module.exports (which is the Object testModule) test.input = "Hello World"; // sets module.exports.input console.log(test.testFunc); // returns function(){ return etc... }