将数据预处理为硬编码阵列

pre-processing data into a hard-coded array

本文关键字:编码 阵列 数据 预处理      更新时间:2023-09-26

我有一个关于硬编码数组的问题。我查看了之前提出的几个关于硬编码数组的问题,希望能得到这样的答案。但是,在大多数情况下,我不明白答案,这是唯一一个看起来可能相关的答案:

glob()来构建文件数组,还是硬编码数组?速度是关键,但自动化是不错的

不过,我的问题要简单得多。我在OpenOffice电子表格中有几个工作表,我选择将其预处理成一个大的硬编码数组,然后将其存储在我的"服务器"目录中。为了测试这一点,我将以下几行代码放入一个名为"distance.js"的文件中,并将该文件直接放在我的应用程序目录中的一个"服务器"文件夹中:

  var distances = {};
  distances['Salt Lake City.Washington, DC'] = 2080;
  distances['Salt Lake City.Cheyenne'] = 434;
  distances['Salt Lake City.Denver'] = 536;
  distances['Salt Lake City.Carson City'] = 534;

然后,我在控制台中运行以下命令,看看我是否能够在应用程序中访问这些数组值:

  console.log(distances['Salt Lake City.Carson City']);

我得到的结果是:

未采集参考错误:未定义分数(…)


然后,我试图在Meteor.isServer:的Meteor.startup函数中的常规project.js文件中插入这些行

  if (Meteor.isServer) {
    Meteor.startup(function () {
      // code to run on server at startup
      var distances = {};
      distances['Salt Lake City.Washington, DC'] = 2080;
      distances['Salt Lake City.Cheyenne'] = 434;
      distances['Salt Lake City.Denver'] = 536;
      distances['Salt Lake City.Carson City'] = 534;
    });
  }

这导致了同样的错误。


我的项目中安装了"不安全"的程序包,所以安全性不应该是个问题。我想我只是错过了一些关于代码需要去哪里才能被编译器/解释器看到的基本内容。有人能帮忙吗?

我有点期待有人建议我把所有这些信息都收集起来。我目前不明白为什么这样做会有好处,但也许我错过了这样做有用性的一些基本方面。如果是的话,有人能解释一下或给我指一个我可以自己阅读的地方吗?我已经完成了几个流星教程,最近的一个是你的第二个流星应用程序。这些都是很好的教程,我从中学到了很多。但我觉得我的知识仍有漏洞需要解决,这就是一个最好的例子。


我的计划是通过一个函数调用来访问这些硬编码的数组元素,它看起来像这样:

  getDistance('Salt Lake City','Cheyenne')

因为我不存储向后的值,例如从夏延到盐湖城的距离,所以我打算设置该函数,这样,如果某个特定引用未定义,它将翻转这两个元素,并以相同的方式再次调用该函数,但使用这些反向值(即getDistance('right','left')代替getDistance。

但是,目前,我甚至无法通过第一步。

提前感谢您能为我提供的任何帮助。

答案似乎是使用fs模块将数据从文本文件中读取到集合中。我仍在努力实现这一点,但这里有更多信息:在我的流星应用中使用nodejs-fs模块