2015-04-23 1 views
1

Я пытаюсь прочитать файл .json в/общедоступной папке. Относительный путь, который я использую, это «../../../../../public/data.json», и он работает, когда я запускаю meteor run.Meteor читает файл в общедоступной папке, используя readFileSync, не работает при развертывании

Однако, когда я раскрываю метеорной подобласти, запустив meteor deploy MyApp.meteor.com, он выходит из строя и журналы говорят

Ошибка: ENOENT, нет такого файла или каталога»../../../../ .. /public/data.json '

Я пробовал использовать' data.json ',' public/data.json 'и т. д., но я не мог заставить его работать. Что мне здесь не хватает?

ответ

0

Если вы поместите файл data.json в корне папки, вы можете просто использовать путь «/data.json»

+0

Я уже пробовал, но получаю ошибку, как это: (STDERR) ошибка: ENOENT, нет такого файла или каталога„/data.json“ – cloclo

+0

это если вы делаете запрос HTTP GET на сервер, но если вы не открываете файл из кода сервера. – Jay

1

Поместите данные в «частную» директории с вашим корнем приложения вместо «публичного» (предполагая, что вы только прочтете его на сервере, что вы, похоже, делаете). Если вам нужен файл (независимо от того, развернуты вы или нет), он находится по пути «assets/app /».

Например, если ваше приложение было структура каталогов:

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

Вы могли бы использовать что-то вроде «peerlibrary: фс», который предоставляет волокна знающих функции фс синхронизации, и сделать следующее в «serverCode.js "

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

Чтобы уточнить, если вы работаете локально, ваше приложение запускается в каталоге, который вызывается (из вашего корня приложения): «.meteor/local/build/programs/server», где вы найдете «активы»/app ", который содержит копию содержимого« частной »директории. – Jay

+0

Если вы хотите сохранить его в «общедоступном» каталоге, используйте «../web.browser/app/» в качестве префикса пути при развертывании. Вы уже указали, как достичь этого, когда вы не развернуты. Потому что отличается от того, развертывается ли вы или нет, это менее желательное решение, чем в этом ответе. – Jay

 Смежные вопросы

  • Нет связанных вопросов^_^