nodejs/redis auth работает локально (с Foreman), но не на Heroku
Похоже, что мое req.session (.user) не существует, когда мое приложение для узла находится на Heroku. На моем локальном компьютере все работает, и когда я нажимаю на heroku, у меня есть доступ к моему Redis-to-go хранилищу для других целей, но когда я вхожу в систему и перехожу на аутентифицированные страницы, я получаю "Внутреннюю ошибку сервера" на обслуживаемом сервере. страница, и "Не могу прочитать свойство 'currentUser' из неопределенного" в журнале, w/undefined = req.session, я считаю.
Также у меня одинаковый редистой код в начале обоих файлов:
if process.env.REDISTOGO_URL
rtg = require("url").parse(process.env.REDISTOGO_URL)
redis = require("redis").createClient(rtg.port, rtg.hostname)
redis.auth(rtg.auth.split(":")[1])
else
redis = require("redis").createClient()
редактировать: я все еще довольно плохо знаком с Heroku/express/redis, и я понял, что проблема может заключаться в том, что приведенный выше код не находится в функции, которая экспортируется и вызывается, поэтому я переместил ее, но не могу заставить его развернуть. После
git add .
git push heroku master
heroku releases
Я получаю тот же старый список развертываний и откатов, которые у меня были раньше...
Итак, 1) Моя проблема в том, что у меня был мой код за пределами экспортированного FN??
2) Как мне подтолкнуть мои изменения? Возможно, у меня закончились воспоминания о Героку? моя программа не очень большая...
Edit2 - я понял это. Было несколько небольших изменений, которые мне нужно было сделать.
Спасибо Джон
1 ответ
Попробуйте изменить первую строку на:
if (typeof(process.env.REDISTOGO_URL) !== 'undefined')
Если это не сработает, добавьте операторы console.log, чтобы увидеть, какую сторону оператора if..else вы используете в Heroku.