Meteor在部署时使用readFileSync读取公用文件夹中的文件

时间:2015-04-23 21:23:55

标签: meteor

我正在尝试读取/ public文件夹中的.json文件。我正在使用的相对路径是'../../../../../public/data.json',当我使用meteor run运行时它会起作用。

但是,当我通过运行meteor deploy MyApp.meteor.com部署到meteor子域时,它会崩溃并且日志会显示

错误:ENOENT,没有这样的文件或目录'../../../../../ public / data.json'

我尝试使用'data.json','public / data.json'等,但我无法使用它。我在这里缺少什么?

2 个答案:

答案 0 :(得分:2)

将数据放在应用程序根目录下的“私有”目录中,而不是“公共”(假设您只是要在服务器上读取它,这就是您似乎正在做的事情)。当您需要该文件时(无论您是否部署),它位于路径“assets / app /".

例如,如果您的应用具有目录结构:

myApp.css
myApp.js
myApp.html    
server/
    serverCode.js
private/
    data.json

您可以使用类似“peerlibrary:fs”的内容,它会公开光纤感知fs同步功能,并在“serverCode.js”中执行以下操作

var data = JSON.parse(fs.readFileSync("assets/app/data.json"));

答案 1 :(得分:0)

如果将文件data.json放在公用文件夹的根目录中,则只需使用路径" /data.json"