gpt4 book ai didi

javascript - 我应该如何编写简单的顺序 GET?

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

Node.js 和 Redis 看起来很火,但我快被烧死了。我无法优雅地克服看似非常简单的任务:

给定 3 个数字,检查前两个是否大于 10。如果是,则打印第三个数字。

我确实用这个相当滑稽的脚本完成了这个任务:

var http = require("http");
var redis = require("redis");
client = redis.createClient();

http.createServer(function(request, response) {
client.SET("key1", "11");
client.SET("key2", "9");
client.SET("key3", "3");

response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello\n\n");
client.GET("key1", function(err, reply) {
response.write(reply + "\n\n");

if(parseInt(reply) > 10) {
client.GET("key2", function(err, reply) {
response.write(reply + "\n\n");

if(parseInt(reply) > 10) {
client.GET("key3", function(err, reply) {
response.write(reply + "\n\n");

response.end();
client.end();
});
} else {
response.end();
client.end();
}

});
} else {
response.end();
client.end();
}
});
}).listen(8000);

我注意到的几件事是:

  • 每次我想要一个新的 GET 时都需要嵌套吗?
  • response.end() 需要在某处调用才能显示 write。如何避免在 else block 中重复它们?

然后我尝试了这种查询数据库的方式:

http.createServer(function(request, response) {

client.SET("key1", "11");
client.SET("key2", "9");
client.SET("key3", "3");

var key1 = 0;
var key2 = 0;
var key3 = 0;

response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello\n\n");
client.GET("key1", function(err, reply) {
response.write(reply + "\n\n");
key1 = parseInt(reply);
});

client.GET("key2", function(err, reply) {
response.write(reply + "\n\n");
key2 = parseInt(reply);
});

client.GET("key3", function(err, reply) {
response.write(reply + "\n\n");
key3 = parseInt(reply);
});

response.write(key1 + "\n\n");
response.write(key2 + "\n\n");
response.write(key3 + "\n\n");

response.end();
client.end();

经过一些阅读和思考,我的解释是代码在异步 GET 返回之前到达 response.write,然后关闭响应,因此内部写入永远不会发生。至少我从第一个示例中注意到可以轻松调用 SET,但我不知道(而且这似乎并不重要)它们是否真的按该顺序设置。

所以,也许我正在做一些不适合node和redis的事情。而且我一定遗漏了一些基本而明显的东西。我需要做什么才能升级?

或者告诉我必须返回 PhpMyAdmin :(

最佳答案

看看 async 它可以帮助您组织代码 https://github.com/caolan/async希望这有帮助

关于javascript - 我应该如何编写简单的顺序 GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10183089/

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