模块导出类Node.js

时间:2012-01-26 03:35:04

标签: class node.js module

我是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'

我做错了什么?

1 个答案:

答案 0 :(得分:11)

这是一个命名空间问题。现在:

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... }

或者,您可以exports.test代替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... }