带有redis的节点js没有返回给调用者
Posted
技术标签:
【中文标题】带有redis的节点js没有返回给调用者【英文标题】:Node js with redis not returning to caller 【发布时间】:2016-12-13 07:17:42 【问题描述】:我是 Node 世界的新手,但有一些回调和 Promises 的信息。
所以只需编写一个小代码来从 Redis 获取数据并将其打印到控制台。
现在下面的代码运行良好,但它永远不会返回它。意味着当我使用 node 命令运行它时,说 test.js 是文件的名称,然后它会执行并返回来自 Redis 服务器的值,但永远不会出现返回提示。请看图片。为什么会这样,我们必须做些什么才能让它返回。
var redis = require("redis");
var client = redis.createClient(6379, "localhost");
var Promise = require("bluebird");
client.get("key1", function(err, result)
if(err)
throw err;
console.log(result);
);
【问题讨论】:
因为 redis 客户端必须保持与服务器的连接,因此绑定到一些事件侦听器。这可以防止进程退出。 那我怎么和其他服务一起使用,假设我想在redis里放一些key,又得回来。我该怎么做? 【参考方案1】:您可以关闭该进程。检查是否必须先关闭 redis 连接。
client.get("key1", function(err, result)
if(err)
throw err;
console.log(result);
process.exit(0);
);
【讨论】:
client.quit()
应该就足够了。以上是关于带有redis的节点js没有返回给调用者的主要内容,如果未能解决你的问题,请参考以下文章