gpt4 book ai didi

node.js - Incr 似乎运行了两次——为什么?

转载 作者:IT王子 更新时间:2023-10-29 06:09:18 26 4
gpt4 key购买 nike

我很难让 node、redis 和 async 做我想做的事。我正在尝试非常基本的事情来掌握重定向控制流的模式。在这里,我持有一个计数器变量“success”,如果比较 key0 > key1 为真,它会加一。它们现在是静态的,所以它总是正确的;我唯一想改变的是增加 success。我刷新浏览器以重新运行比较并再次增加 success

我的问题是:当页面刷新时,success 跳了 2。我尝试用 incr 进行回调,但它看起来就像只有 get 类型的命令有回调。我的脚本中有一个 client.end();,但它阻止了我重新加载页面,所以我将其注释掉了。我怀疑这是我问题的根源。如果是这样,client.end 属于哪里?

var http = require("http");
var redis = require("redis");
var async = require("async");

client = redis.createClient();

http.createServer(function(request, response) {
// key "success" set to 0 externally, through redis-cli;
client.set("key0", "19");
client.set("key1", "11");

response.writeHead(200, {"Content-Type": "text/plain"});

async.series([
shortcut("key0"),
shortcut("key1"),
shortcut("success")
],

function(err, results){
if (results[0] > results[1]) {
client.incr("success", function(err, reply) {
response.write("incr done");
});
response.write(results[0] + "\n\n");
response.write(results[1] + "\n\n");

response.write(results[2]);
}
response.end();
// client.quit();
});
}).listen(8000);

function shortcut(key) {
return function(callback) {
client.get(key, function(err, reply) {
callback(null, reply);
}
);
}
}

最佳答案

您的浏览器很可能会请求 favicon.ico 并因此生成额外的请求来第二次运行您的代码。

关于node.js - Incr 似乎运行了两次——为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289484/

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