模块导出类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... }