从另一个javascript文件读取/使用变量

从另一个javascript文件读取/使用变量,javascript,node.js,variables,scope,Javascript,Node.js,Variables,Scope,如果我像这样导入js文件: const importedFile = require( './file1'); function thisIsAFunction() { let var1 = { qty: 123 } let var2 = { qty: 123 } let var3 = { qty: 123 } return [ var1, var2, var3 ]; } module.exports = { thisIsAFunction } 我可

如果我像这样导入js文件:

const importedFile = require( './file1');
function thisIsAFunction() {
    let var1 = { qty: 123 }
    let var2 = { qty: 123 }
    let var3 = { qty: 123 }

    return [ var1, var2, var3 ];
}
module.exports = {
    thisIsAFunction
}
我可以看到file1的所有函数和控制台日志正在运行,但我不能运行或使用特定的变量

如果我
console.log(importedFile)
我得到这个:
{}
空对象


如何从file1.js获取所有变量?

JavaScript模块是具有自己作用域的自包含环境

只有显式导出的值在模块外部可用

因此,如果希望
/file1
中的某些内容在
导入文件中可用,则需要将其包含在导出中:

const value = "Hello, world";

function thisIsAFunction() {
    console.log(value);
}

module.exports = {
    thisIsAFunction
}
然后你可以:

const importedFile = require( './file1');
importedFile.thisIsAFunction();

我发现,在file1中,我可以导出如下变量:

const importedFile = require( './file1');
function thisIsAFunction() {
    let var1 = { qty: 123 }
    let var2 = { qty: 123 }
    let var3 = { qty: 123 }

    return [ var1, var2, var3 ];
}
module.exports = {
    thisIsAFunction
}
然后像这样读取/使用第一个变量:

let importedValue= importedFunct.thisIsAFunction()

console.log(  importedValue[0][0].qty)

您无法更改常量值没有人试图更改。阅读..在这里阅读:@DarrenSweeney-这是ES6导入,而不是节点模块系统。从该链接中,我尝试了以下方法:导入*作为导入文件从“/file1.js”导入;给我这个:SyntaxError:Unexpected token*是的,我可以导入一个变量,但正如我说的,我可以看到所有的东西都在运行,但我不能使用任何东西,为什么?有什么方法可以导出所有变量吗?没有。你不能导出变量,只能导出值。是的,所有变量值,都在一起,而不仅仅是一个。另一个问题是,在文件1中,我的变量值每10秒更改一次,但是当我尝试导入时,我只得到第一个值,正如我所说的,您只能导出值,不能导出变量。您可以导出一个函数,根据需要提供其当前值。您可以在导出的对象中放入任意数量的值。啊,好吧,但是如果“const value=”Hello,world“;”是在函数中声明的,那么如何读取它呢?因为我需要阅读/使用的不仅仅是console.log