2016-02-22 2 views
0

Я хочу сохранять «состояние» моего приложения каждый раз, когда он изменяется, и загружать его каждый раз, когда приложение загружается.
«Состояние» будет простым объектом с несколькими переменными в нем, идея заключается в JSON.stringify его файлу, а JSON.parse - при необходимости.Запись/чтение небольшого файла

Из чего я понимаю, это невозможно сделать с помощью Node fs, так как файлы на Heroku не являются постоянными.
Я не могу использовать S3, потому что он не бесплатный (бесплатный план длится только год), и это мой хобби-проект - я не готов платить за него.
Еще одно повторяющееся предложение - использовать какую-то базу данных, но я думаю, что это пустая трата времени, так как я буду иметь дело только с одним очень маленьким файлом.

По сути, мой вопрос, как я могу достичь чего-то, что ближе всего к этому ?:

WRITE("filename.txt",JSON.stringify(x)); 
x=JSON.parse(READ("filename.txt")); 

(PS: Я где-то читал, не могу вспомнить, где, что Heroku дает бесплатно 100MB (что было бы более чем достаточно). Что это? Имеет ли это какое-либо отношение к моему коду?)

+1

Это не проблема для использования Redis: https://elements.heroku.com/addons/rediscloud –

+0

Спасибо большое! –

ответ

1

Я могу придумать несколько способов сделать это бесплатно. Все они в значительной степени сводятся к «Что бесплатный сервис позволяет мне читать/писать произвольное содержимое файла, а также доступ через API?» ...

  • вы используете или уже платить за Dropbox (или что-то подобное делать?). Если это так, вы можете указать Dropbox API for Node.js, чтобы сохранить/загрузить состояние вашего приложения.
  • Вы можете использовать Github Gist API и просто обновлять тот же Gist снова и снова.

В противном случае вы упомянули базы данных. Несомненно, база данных будет излишне технически, но с учетом ваших ограничений (и того факта, что вы можете получить небольшой db бесплатно на Heroku), и сколько накладных расходов, реализующих один из вышеупомянутых API, было бы, это могло бы быть лучшим вариант.

Надеюсь, это поможет.

+0

Красивый и подробный ответ! Спасибо! Один вопрос: у меня уже есть бесплатная учетная запись Dropbox, могу ли я использовать их Node API с этим? Или мне нужен платный план доступа к API? –

+1

Вы сможете использовать API со свободным планом. –

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