2017-02-15 2 views
-1

functions.jsNode.js неопределенного переменная

var number; 

function test(){ 

    number = 1; 

} 

exports.number = number; 

В файле test.js я хотел бы попытаться получить номер переменный:

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

Но его возвращение всегда undefined, что является лучшим решением почини это? Не так ли глобальная переменная? Даже если я пытаюсь экспортировать функцию его всегда возвращает неопределенное значение

+0

Вы присвоения значения переменной внутри функции, но мне кажется, вы не называя эту функцию, чтобы сделать назначение произойдет. –

+1

Ваша функция 'test()' настолько одинока, что ее нужно выполнить (вы даже сказали ей, чтобы она была подготовлена ​​'require'-ing, это файл хоста), но вы просто не звонили :) –

ответ

1

Это потому, что ваш тест() в файле functions.js не была выполнена. Проще говоря, вам просто нужно добавить строку выше экспорта:

var number; 

function test(){ 

    number = 1; 

} 

test(); 

exports.number = number; 
0

Если functions.js находится в том же каталоге, что и test.js, требуют, как так:

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

Но вы еще никогда не присвоить значение number, потому что вы не вызываете test(), поэтому он все равно будет печатать undefined, пока вы это не назовете.

Вот более полный пример:

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