使用Redis存储和获取布尔值

时间:2019-05-04 09:32:41

标签: javascript node.js redis

我正在尝试使用Redis存储并为我的切换功能获取布尔值。

我正在使用的依赖性是redis-js,我可以使用键redis来设置值false,但是从redis获取值总是false

说先将键值存储到Redis

redis.set('myKey', 'false');

获取价值

let toggle = redis.get('myKey');
toggle = !toggle;

商店

redis.set('myKey', toggle);

获取

const checkStatus = redis.get('myKey');
return checkStatus;

我希望两次执行该函数的输出为true -> false

2 个答案:

答案 0 :(得分:2)

要使您的装备正常工作,必须明确检查所获得的值是否等于字符串'false'

let toggle = redis.get('myKey');
toggle = toogle === 'false'

将字符串'false'转换为布尔值,结果为true false并取反,得到false

来自MDN

  

所有其他值,包括任何对象或字符串"false",都会创建一个初始值为true的对象

这是一个例子:

const val = 'false'

const toggle = !val; // this is equivalent to !Boolean(val)

const bool = Boolean(val) // get boolean
const negated = !bool // negate
console.log('toggle: ', toggle);
console.log('bool: ', bool); // Boolean("false") gives true
console.log('negated: ', negated);

答案 1 :(得分:1)

您运行命令redis.get,返回值类型为String而不是Boolean。

所以您不应该使用!运算符,您可以将其与“ true”或“ false”进行比较,然后分配一个值