我正在尝试在我的节点后端运行 Redis。代码运行良好,直到到达任何 Redis 命令,此时它就会停止。没有错误消息或任何内容,例如
const client = redis.createClient()
client.connect().then(() => redisTest())
const redisTest = async () => {
console.log("running redis test...")
try {
client.set("test","val", function(err) {
if (err) {
// Something went wrong
console.error("error");
} else {
client.get("test", function(err, value) {
if (err) {
console.error("error");
} else {
console.log("Worked: " + value)
}
})
}
})
} catch (error) {
console.log("Redis error", error)
}
}
client.on('error', err => console.log('Redis Client Error', err));
控制台记录“正在运行 redis 测试...”,然后停止(至少我预计会出现错误消息)。 Redis CLI 运行良好,我能够获取和设置值,并且我已经验证了端口号。我也尝试过
async client.connect()
和
(async () => {
await client.connect()
})
两者都会引发错误。
关于如何解决这个问题有什么建议吗?
这会返回 val
const client = redis.createClient();
const connectRedis = () => {
return new Promise((resolve, reject) => {
client.connect()
client.on('connect', () => {
console.log('Connected to Redis server...');
resolve();
});
client.on('error', (err) => {
console.error('Error connecting to Redis:', err);
reject(err);
});
});
};
const redisTest = async () => {
try {
console.log("running redis test...");
await client.set("test", "val");
const value = await client.get("test");
console.log("Worked: " + value);
} catch (error) {
console.log("Redis error", error);
} finally {
client.quit(); // Close the Redis client after the test is complete.
}
};
// Usage: Connect to Redis first and then execute the test
connectRedis()
.then(redisTest)
.catch((err) => {
console.error("Error in Redis test:", err);
client.quit(); // Close the Redis client if there is an error during connection or test.
});