首页 > 解决方案 > 如何访问存储在不同js文件中的数组

问题描述

我正在尝试创建自己的 lorem ipsum 应用程序,并且我想通过将我的单词库存储在其他文件中来保持我的代码干净。如何访问存储在不同 JS 文件中的数组?例如harry = ["", "", ""],我不想硬编码,而是想将该数据存储在不同的文件中,然后将该文件调用到数组中。

// generator.js
function GenerateNewText(){
this.sentences = [
    harry = [
        "I am the chosen one!",
        "Boy wizard",
        "Quidditch seeker"
    ron = [
       "I am a Weasley",
       "Gryffindor",
       "Quidditch keeper"
    ]
  ]
}

GenerateNewText.prototype.getRandomSentence = function() {
   let randomSentence = this.sentences[0][Math.floor(Math.random() * this.sentences.length)]
   return randomSentence;
}

目前,我有一个 harryText.js,其中包含

// harryText.js
harryText = [
  "I am the chosen one",
  "I am a Gryffindor",
  "I am a boy"
]

module.exports = harryText;

但在我的 generator.js 中执行此操作显示harryText is not defined

function GenerateNewText(){
this.sentences = [
    harryText,  <---- error here
    ron = [
       "I am a Weasley",
       "Gryffindor",
       "Quidditch keeper"
    ]
  ]
}

我尝试像这样要求它 const harryText = require("./harryText.js") ,但问题仍然存在。我猜是范围问题?

我尝试安装ejs和更改harryText.ejs并将其包含<%= include harryText %>在生成器数组中,这是无效的代码。

是否可以从另一个文件调用一个数组并将其存储在另一个数组中?有谁知道解决这个问题?

是的,我知道哈利波特 Ipsum 已经存在。这只是虚拟文本。

标签: javascriptarraysnode.jsexpress

解决方案


Javascript 文件是相互隔离的。要共享您始终需要的通用代码,require并且module.exports

所以你正在做正确的事情module.exports = harryText

然后你需要require那个文件generator.js

const harryText = require("./harryText");
function GenerateNewText(){
this.sentences = [
    harryText,
    ron = [
       "I am a Weasley",
       "Gryffindor",
       "Quidditch keeper"
    ]
  ]
}


推荐阅读