2015-03-10 3 views
0

Я построил Node.js приложение с этой структурой:Значение переменной случайным образом изменяется в node.js

В app.js:

var myList = ['0']; 

app.get('/webpage',function(req,res){ 
    console.log(myList); 
    res.render('webpage.ejs', {exps: myList}); 
}); 

На «странице» Я могу показать myList и есть также форма, которая позволяет мне добавлять элементы к myList. Предположим, что я добавлю '1' в myList через эту форму.

У меня есть следующая проблема, которую я не знаю, как отлаживать:

  • локально на компьютере, это приложение работает отлично: я могу видеть ['0','1'] в моей консоли каждый раз, когда я обновить «веб-страница».
  • онлайн на Heroku, когда я обновить «веб-страница» иногда я вижу ['0','1'] иногда я вижу только ['0'] и пару обновления позже я снова вижу ['0','1']: это как myList случайным образом колеблется между его значением по умолчанию, когда приложение впервые был запущен и значение, указанное позже.

Я использую те же версии npm и node локально, и на heroku и одинаковые версии зависимостей. Насколько мне известно, у меня есть одна и та же среда локально и героку, поэтому я понятия не имею, откуда эта проблема.

ответ

1

Возможно, у вас есть несколько экземпляров на Heroku, и в этом случае каждый запрос может быть назначен другому экземпляру, каждый из которых имеет свой собственный процесс и пространство памяти.

Я считаю, что Heroku также закрывает экземпляры после периода бездействия, так что это может быть проблемой.

Если вы собираетесь что-то сохранить, как насчет его хранения в базе данных?

+0

Вы правы, два динамика работали одновременно на Хереку. Я никогда не начинал больше, чем один, поэтому я жду поддержки герою, чтобы узнать больше об этой проблеме. – Sulli

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