gpt4 book ai didi

node.js - NodeJS 和 Redis 空响应

转载 作者:可可西里 更新时间:2023-11-01 11:24:46 25 4
gpt4 key购买 nike

我正在开发一个 NodeJS 应用程序,它在它创建的 Redis 数据库上运行良好。

同一应用程序的旧版本使用的数据库中的信息略少。

我的目标是通过为可能无效的查询引入错误处理来将我的新应用程序与旧数据库一起使用。

当我将我的开发应用程序切换到旧数据库的副本时,出现以下错误:

/root/z-nomp/node_modules/redis/lib/utils.js:7
if (reply.length === 0 || !(reply instanceof Array)) {
^

TypeError: Cannot read property 'length' of undefined
at Object.replyToObject [as reply_to_object] (/root/z-nomp/node_modules/redis/lib/utils.js:7:15)
at RedisClient.handle_reply (/root/z-nomp/node_modules/redis/index.js:314:23)
at multi_callback (/root/z-nomp/node_modules/redis/lib/multi.js:79:43)
at Command.callback (/root/z-nomp/node_modules/redis/lib/multi.js:116:9)
at normal_reply (/root/z-nomp/node_modules/redis/index.js:721:21)
at RedisClient.return_reply (/root/z-nomp/node_modules/redis/index.js:819:9)
at JavascriptRedisParser.returnReply (/root/z-nomp/node_modules/redis/index.js:192:18)
at JavascriptRedisParser.execute (/root/z-nomp/node_modules/redis-parser/lib/parser.js:574:12)
at Socket.<anonymous> (/root/z-nomp/node_modules/redis/index.js:274:27)
at Socket.emit (events.js:160:13)
at addChunk (_stream_readable.js:269:12)
at readableAddChunk (_stream_readable.js:256:11)
at Socket.Readable.push (_stream_readable.js:213:10)
at TCP.onread (net.js:602:20)

出现这个错误的库在这里:https://github.com/NodeRedis/node_redis/blob/master/lib/utils.js

我是否需要将错误处理引入该模块本身?

原始应用程序的代码在这里:https://github.com/zone117x/node-open-mining-portal

我 fork 的代码在这里:https://github.com/z-classic/z-nomp

在这种情况下是否存在一些我应该注意的常见陷阱?

谢谢!

最佳答案

这不是调试答案。正如评论中所述,我们需要代码才能进行评估。

但是,根据您收到的错误,很明显“回复”返回的​​是未定义或空值。我假设你知道这么多。

首先,您的代码确实必须检查此类内容。你直接跳到长度(实际上,对于理解未定义、公牛、空字符串和对象之间区别的任何人来说,检查原因是一件非常糟糕的事情)。但是,您似乎没有检查回复,它返回未定义。

至于您的整体 node-redis 联姻,这很常见。在许多情况下通常是一个非常好的主意。但是,当您使用 Redis 时,请小心监控您的吞吐量,如果与 Socket.io 等库一起使用,您将面临一系列全新的问题需要克服。

以上都是我在火车上快速浏览的。所以请原谅拼写错误和未正确使用粗体评论等。

您确实需要评估您的变量,尤其是当您不知道它们是否会保存任何东西时。在这种情况下, promise 回调异步等待都是你的 friend 。

关于node.js - NodeJS 和 Redis 空响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com