Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session Sailsjs 0.10.3-Heroku-RedisToGo-请求会话未定义_Session_Heroku_Connect_Sails.js_Redistogo - Fatal编程技术网

Session Sailsjs 0.10.3-Heroku-RedisToGo-请求会话未定义

Session Sailsjs 0.10.3-Heroku-RedisToGo-请求会话未定义,session,heroku,connect,sails.js,redistogo,Session,Heroku,Connect,Sails.js,Redistogo,当使用带Redis的sailsjs v0.10.3进行会话存储时,req.session始终是未定义的 当我在本地和Heroku部署时,它是未定义的请求会话被正确定义 我创建了一个sailsjs应用程序: sails new testapp sails generate api test testSet testGet 已安装的connect redis v1.4.7: npm install connect-redis@~1.4.7 在config/session.js中设置配置: ada

当使用带Redis的sailsjs v0.10.3进行会话存储时,
req.session
始终是
未定义的

当我在本地和Heroku部署时,它是未定义的<当我使用默认的
内存
适配器时,代码>请求会话被正确定义

我创建了一个sailsjs应用程序:

sails new testapp
sails generate api test testSet testGet
已安装的connect redis v1.4.7:

npm install connect-redis@~1.4.7
config/session.js
中设置配置:

adapter: 'redis',
host: 'hoki.redistogo.com',
port: 10015,
db: 'redistogo',
pass: '88819aa089d3dd86235f9fad4cb92e48'
adapter: 'redis',
host: 'hoki.redistogo.com',
port: 10015,
db: 'redistogo',
pass: '88819aa089d3dd86235f9fad4cb92e48'
config/socket.js
中设置配置:

adapter: 'redis',
host: 'hoki.redistogo.com',
port: 10015,
db: 'redistogo',
pass: '88819aa089d3dd86235f9fad4cb92e48'
adapter: 'redis',
host: 'hoki.redistogo.com',
port: 10015,
db: 'redistogo',
pass: '88819aa089d3dd86235f9fad4cb92e48'
创建了一些获取和设置会话值的控制器操作:

UserController.js

testSet: function (req, res) {

  req.session.testVar = "I am the test var!";

  return res.ok();
},

testGet: function (req, res) {
  return res.json({
    testVar: req.session.testVar
  });
}
最后部署到Heroku:

git init
git add .
git commit -m "Initial commit"
heroku create
heroku addons:add redistogo
git push heroku master
git 
这就是错误:

error: Sending 500 ("Server Error") response:  
TypeError: Cannot set property 'testVar' of undefined 
at module.exports.testSet (/app/api/controllers/TestController.js:46:25)
看起来这个简单的例子应该有用

以下是上述示例的回购协议:

有人知道我做错了什么吗

更新:

我尝试在Heroku上使用MemoryStore适配器来获取/设置会话变量。由于
未定义
也失败。它在本地工作。现在我更困惑了。

我们正在使用rediscloud(heroku上的sails应用程序),并且
db
属性设置为
0
。这可能是问题所在吗

此外,还应该通过en env变量解析heroku提供的URL。这就是我们使用的(咖啡脚本):


这里有同样的问题,但我们也有同样的问题……您是否能够连接到Redis的本地实例?我在使用RedisToGo玩Sails时遇到了一些问题,因此确保真正的问题是RedisToGo可能会使事情更容易处理。@CaseyWebb我没有在本地安装Redis。我与所有基于云的提供商都有此问题。请尝试与Heroku一起打开支持票证。他们可能必须为您打开端口。我可以用
解析的方式获取用户吗。user