下面是示例 node.js 代码的扩展:
var express = require('express');
var application = express.createServer();
var redis = require("redis"),
client = redis.createClient();
client.on("error", function (err) {
console.log("Error " + err);
});
client.set("test key", "TEST KEY VALUE", redis.print);
application.get('/', function(request, response) {
client.get('test key', function(err, value) {
client.quit();
response.send('The value of "test key" is: ' + value);
});
});
application.listen(2455);
服务器启动正常,但在访问时,页面加载了一段时间,最终出错——“没有收到数据。”
我有 redis 正在运行, key 保存良好,我也可以通过 Node 的 repl 中的 client.get() 访问它们。
我想我缺少一些关于异步程序如何工作的理论。
最佳答案
我不认为 Redis/redis 库要求您显式终止客户端连接。即使这样做,您也需要确保在退出客户端之前调用并处理了成功或错误的回调。
希望对您有所帮助。
关于node.js - 为什么这个简单的 node.js 代码会卡住?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11478628/