【问题标题】:How can I use an array across multiple files?如何跨多个文件使用数组?
【发布时间】:2026-02-23 17:30:01
【问题描述】:

我是来问我是否在我的 index.js 文件中放置了一个变量,如下所示:var allowed = ['id1', 'id2']

我可以在多个文件中使用该变量吗(例如命令?)`

我在我的机器人中尝试过,但控制台返回错误“允许”未定义。有人有解决办法吗?

【问题讨论】:

标签: javascript discord.js


【解决方案1】:

global_data.js

export const YourArray = ... //whatever info

引用这个:

import { YourArray } from './global_data';

【讨论】:

  • 使用此代码,我的机器人在启动时崩溃并出现以下错误: > /home/container/commands/admin commands/say.js:11 > import { allowed } from './global_data.js '; > SyntaxError: Unexpected token {
  • @Goose 您使用的是什么版本的 Node? node -v
  • 使用require 代替导入。
  • @slothiful 我不确定,当我尝试运行 node -v 时,它什么也没做。
  • 打开命令提示符并执行它,如果您正在执行此操作,请不要将其作为代码运行。很可能您使用的是不支持 ES6 模块/导入的早期版本的 Node。更新应该可以解决您的错误。
【解决方案2】:

在定义任何函数以使其成为全局变量之前,将数组变量放在文件的最顶部(或将其放在所有函数之外)。全局函数可以被 javascript 文件中的任何函数使用,也可以跨多个文件使用。如果在函数内声明了变量,则只能在该函数内使用。

例子:

var a;
function f1() {
// a can be used here
}

function f1() {
// a can be used here
}

但是

function f1() {
var b;
// b can only be used inside this function only
}

【讨论】:

    【解决方案3】:

    为了能够在不同文件中使用变量,您可以像在主文件中那样定义变量,然后在文件末尾执行 module.exports 来导出变量,可以这样说在 index.js 上:

    let variable1 = "Hello"
    
    module.exports = {
      variable1
    }
    

    然后在您想要使用变量的 2º 文件上,您需要 index.js 并且将包含导出的每个变量

    const  variableX = require("./index.js")
    console.log(variableX)
    

    如您所见,在 2º 文件中,console.log 中的“Hello”。

    注意:在 require 中,您输入要从中获取数据的文件的路径。

    【讨论】: