Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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
Php 从redis服务器获取多个密钥,并使用节点JS无循环解析json_Php_Node.js_Redis_Lumen - Fatal编程技术网

Php 从redis服务器获取多个密钥,并使用节点JS无循环解析json

Php 从redis服务器获取多个密钥,并使用节点JS无循环解析json,php,node.js,redis,lumen,Php,Node.js,Redis,Lumen,我正在将REST API从lumen切换到节点,数据以键值格式存储在redis上,但lumen缓存库支持序列化数据,因此所有数据在redis中都是序列化格式,但在node.js中,要实现这一点,需要使用php序列化程序包或使用循环对从redis获取的数据进行解码 为了避免这种情况,我将数据以JSON格式存储在redis上,但尝试使用mget从redis获取数据,但获取的数据是字符串格式 client.mget(["data1", "data2", "data3"], function (err,

我正在将REST API从lumen切换到节点,数据以键值格式存储在redis上,但lumen缓存库支持序列化数据,因此所有数据在redis中都是序列化格式,但在node.js中,要实现这一点,需要使用php序列化程序包或使用循环对从redis获取的数据进行解码

为了避免这种情况,我将数据以JSON格式存储在redis上,但尝试使用mget从redis获取数据,但获取的数据是字符串格式

client.mget(["data1", "data2", "data3"], function (err, res) {
    console.dir(res);
});
我知道从JSON.parse可以得到JSON值,但我不想运行循环将每个值转换为JSON数组

请建议我们如何从redis获得JSON数据。我是否需要在nodejs上使用任何框架,或者需要更改redis上存储的数据

目前我正在redis中以这种格式存储数据

SS:

如果使用此代码仅获取一个密钥:

client.get("data1", function(err, reply) {
    // reply is null when the key is missing
    var cacheData = JSON.parse(reply);
    console.log(cacheData.mId);
});
所以我可以从JSON.parse中获得正确的JSON对象,但如果我想使用

client.mget(["data1", "data1", "data1"], function (err, res) {
    console.log(res);
});
然后我得到了这样的回应

SS:

我不想为数组上的每个索引运行循环。请建议是否有任何包来实现它,或者需要添加任何框架或更改存储过程

以前我是以这种方式存储的(非序列化格式)


SS:

您可以使用
JSON.parse()
函数。例如:
JSON.parse(res)
我已经提到了JSON.parse将解析一个索引,但不是所有的索引数组我想你可以在这里找到解决方案,@giankotarola,我已经检查过了,但它没有完全转换为JSON,在这样的一个节点上:[[Object],[Object],[Object],[Object],[Object]],