2017-02-15 8 views
-1

functions.jsNode.js undefined variable

var number; 

function test(){ 

    number = 1; 

} 

exports.number = number; 

In der Datei test.js ich würde versuchen, die variable Zahl zu erhalten:

var Functions = require('functions.js'); 
var test = Functions.number; 
console.log(test); 

Aber es ist immer undefined Rückkehr, was ist die beste Lösung repariere das? Ist die globale Variable falsch? Auch wenn ich versuche, eine Funktion zu exportieren, seine immer wieder undefiniert

+0

Sie den Wert auf Ihre Variable innerhalb der Funktion zuweisen, aber es scheint Sie nicht, dass die Funktion aufrufen machen passieren die Zuordnung. –

+1

Deine 'test()' -Funktion ist so einsam, begierig ausgeführt zu werden (du hast ihr sogar gesagt, dass sie von 'require'-ing's Host-Datei vorbereitet sein soll), aber du hast nie angerufen :) –

Antwort

1

Das ist, weil Ihr Test() in functions.js Datei nicht ausgeführt worden ist. Einfach gesagt, brauchen Sie nur eine Zeile über den Export hinzuzufügen:

var number; 

function test(){ 

    number = 1; 

} 

test(); 

exports.number = number; 
0

Wenn functions.js im selben Verzeichnis wie test.js ist, erfordert es etwa so:

var Functions = require('./functions'); 

Aber Sie sind noch nie einen Wert number zuweisen, weil Sie rufen nicht test(), so wird es immer undefined drucken, bis Sie das nennen.

Hier ist ein vollständigeres Beispiel:

functions.js

var number = 0; 
function test(){ 
    number = 1; 
} 
exports = { 
    test: test, 
    number: number 
}; 

test.js

var Functions = require('./functions'); 

console.log(Functions.number); // prints 0 
Functions.test(); 
console.log(Functions.number); // prints 1