【发布时间】:2017-09-28 18:40:25
【问题描述】:
我想使用 nodejs 从 Redis 会话中获取数据 - 但我无法获取对象的内部值......
这是一个简单的路由器
router.get('/page-user', function (req, res) {
console.log(redis_model.prototype.getAll());
})
这是模型
redis_model.prototype.getAll = function () {
client.keys('*', function (err, keys) {
if (err) return console.log(err);
for(var i = 0, len = keys.length; i < len; i++) {
console.log(keys[i]);
}
});
};
所以我明白了
users
id:users
session:php:cf5myWFkDNEPwiRLpi6M1P6LqX1UPFtj //object
user:{58}
我正在尝试从会话密钥中获取数据,但我得到了 Undefined ,如下所示:
redis_model.prototype.getAll = function () {
client.keys('*', function (err, keys) {
if (err) return console.log(err);
console.log(keys['session']); // tried also keys.session
});
};
我不明白的部分是为什么我得到所有键的类型字符串 - 就像这里:
redis_model.prototype.getAll = function () {
client.keys('*', function (err, keys) {
if (err) return console.log(err);
console.log(typeof keys[i]); result : //string,string, string,string
});
};
我已经尝试使用 HGETALL 将键作为对象,但我仍然无法定义:
redis_model.prototype.getAll = function () {
client.hgetall("session",function(data){console.log(data)});
};
这是redis db的截图...
【问题讨论】:
-
Redis 键是 always 字符串。