如何读取位于meteor中的两个文件夹中的json文件?

时间:2017-03-13 09:32:42

标签: javascript meteor

我需要从两个文件夹中读取一个语言json文件,但在客户端看起来似乎无法访问。

2 个答案:

答案 0 :(得分:1)

您应该熟悉Meteor应用程序结构,您可以在此处找到:

https://guide.meteor.com/structure.html

有几种不同的方法可以做你想要的。按照指南,我在/ imports区域中有这样的代码,在一个提供给客户端和服务器的目录中。 e.g。

/imports/api/foo/foo.json:

{
  "foo": "bar",
  "baz": "bat"
}

/imports/api/foo/Foo.js:

let fooJson = require('./foo.json');

const FooData = {
    foo: fooJson.foo,
    baz: fooJson.baz
};

export {FooData};

现在,在客户端或服务器上,您可以导入FooData:

import {FooData} from '/imports/api/foo/Foo';

...并且您的JS代码可以使用FooData。

答案 1 :(得分:0)

在Meteor中,您希望提供给客户端的任何资源文件(jpeg,gif,txt,json等)必须放在名为 public

从客户端,您可以像访问顶层一样访问此数据(例如,不包括/public)。例如,如果您在data.json中有文件/public,则可以通过浏览器/data.json访问该文件。

从服务器访问此文件夹有点棘手。我在最新的1.4版本中没有尝试过这个,但您曾经能够访问公共文件夹,如this

path.join(__meteor_bootstrap__.serverDir, "../web.browser/app");

话虽如此,您可能想要退一步思考为什么需要这些数据。如果你实际上并不需要文字文件中的数据,那么我会将json放在服务器上以简化在那里的访问,然后通过流星method将其提供给客户端。