Javascript Node.js未定义变量
functions.jsJavascript Node.js未定义变量,javascript,node.js,Javascript,Node.js,functions.js var number; function test(){ number = 1; } exports.number = number; 在文件test.js中,我将尝试获取变量编号: var Functions = require('functions.js'); var test = Functions.number; console.log(test); 但是它总是返回未定义的,解决这个问题的最佳方法是什么? 全局变量是错误的吗?即使我尝试导出
var number;
function test(){
number = 1;
}
exports.number = number;
在文件test.js
中,我将尝试获取变量编号:
var Functions = require('functions.js');
var test = Functions.number;
console.log(test);
但是它总是返回未定义的,解决这个问题的最佳方法是什么?
全局变量是错误的吗?即使我尝试导出一个函数,如果
functions.js
与test.js
位于同一目录中,它也会返回未定义的,要求如下:
var Functions = require('./functions');
但是您仍然不会为number
赋值,因为您不会调用test()
,所以在您调用之前,它仍然会打印未定义的
下面是一个更完整的示例:
functions.js
var number = 0;
function test(){
number = 1;
}
exports = {
test: test,
number: number
};
var Functions = require('./functions');
console.log(Functions.number); // prints 0
Functions.test();
console.log(Functions.number); // prints 1
test.js
var number = 0;
function test(){
number = 1;
}
exports = {
test: test,
number: number
};
var Functions = require('./functions');
console.log(Functions.number); // prints 0
Functions.test();
console.log(Functions.number); // prints 1
这是因为functions.js文件中的test()尚未执行。简单地说,您只需在导出上方添加一行:
var number;
function test(){
number = 1;
}
test();
exports.number = number;
您正在将值赋给函数中的变量,但似乎您并没有调用该函数来进行赋值。您的
test()
函数非常孤独,渴望执行(您甚至告诉她由require
-ing它的主机文件来准备),但您从未调用:)