这是示例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运行,键保存很好,我也可以通过client.get()在节点的repl中查看它们。
我想我错过了关于异步程序如何工作的一些理论。
答案 0 :(得分:1)
我认为Redis / redis库不要求您明确终止客户端连接。即使你这样做,也需要确保已经调用了成功或错误的回调。在退出客户之前处理。
希望它有所帮助。
答案 1 :(得分:1)
您可能会收到错误,并且因为您没有在res.send之前检查 err 变量,所以您的应用程序不会返回任何内容。尝试添加以下内容:
if(err) throw err;
在client.get之后并检查STDOUT