2012-01-26 24 views
9

Nodes.js noob'um ve başımı modül yapıları etrafında almaya çalışıyorum. Ben thusly testFunc() yöntemi çağırmak girişimindeModül dışa aktarma sınıfı Nodes.js

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

exports.test = testModule; 

: Şimdiye kadar ben bir modül (testMod.js) bu sınıf yapısını tanımladıktan

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

Ama TypeError olsun:

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

Hatalı ne yapıyorum?

cevap

11

Bu bir ad alanıdır. Hemen şimdi: yerine exports.test arasında daha sonra, module.exports = testModule yapabileceğini,

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

Veya:

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 

Sen yapabileceği Müthiş

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

teşekkür ederim. – travega

İlgili konular