Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js未定义变量_Javascript_Node.js - Fatal编程技术网

Javascript Node.js未定义变量

Javascript 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); 但是它总是返回未定义的,解决这个问题的最佳方法是什么? 全局变量是错误的吗?即使我尝试导出

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);
但是它总是返回未定义的,解决这个问题的最佳方法是什么?
全局变量是错误的吗?即使我尝试导出一个函数,如果
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它的主机文件来准备),但您从未调用:)