2016-04-15 12 views
0

test.js'Undefiniert' ausgegeben, wenn Module

var foo = require('./foo'); 
var bar = require('./bar'); 
console.log(foo()); 
console.log(bar()); 

foo.js

module.exports = function() { 
    console.log('In foo.js'); 
}; 

bar.js

module.exports = function() { 
    console.log('In bar.js'); 
}; 

Nach dem Ausführen test.js in NodeJS bedürftigen Ich bekomme das:

In foo.js 
undefined 
In bar.js 
undefined 

Woher kommen zwei undefinierte?

Antwort

3
console.log(foo()); 
console.log(bar()); 

Hier foo() und bar() geben nichts zurück, deshalb wird es als undefined geloggt.

3

Eine Funktion ohne return Anweisung wird undefined zurückgeben.

Sie protokollieren den Rückgabewert foo() und bar(), von denen jede keine return-Anweisung hat.

+0

Einige weitere Erklärung: Die Konsolenprotokollanweisung in Foo und Bar sind gekapselt. So funktionieren Module. Sie teilen kein magisches, globales "Konsolen" -Objekt durch all Ihre Module. Sie müssen die Daten explizit zurückgeben, um sie für andere Module verfügbar zu machen. –

Verwandte Themen