我在埠 6379 上啟動并運行了 redis,通過 telnet 連接作業正常。
我試圖在 node.js 上連接到它,但我沒有從事件偵聽器那里得到任何回應。如果我呼叫 client.set() 之類的任何函式,我會得到:“ClientClosedError:客戶端已關閉”。
這是我正在運行的代碼:
const redis = require('redis');
const client = redis.createClient(6379);
client.on('connect', () => {
console.log('connected');
});
client.on('end', () => {
console.log('disconnected');
});
client.on('reconnecting', () => {
console.log('reconnecting');
});
client.on('error', (err) => {
console.log('error', { err });
});
setTimeout(() => {console.log("goodbye") }, 20*1000 );
20 秒內沒有任何反應,然后關閉
uj5u.com熱心網友回復:
從node-redis庫的v4 開始,您需要client.connect()在初始化客戶端后呼叫。請參閱此遷移指南。
const redis = require('redis');
const client = redis.createClient({ socket: { port: 6379 } });
client.connect();
client.on('connect', () => {
console.log('connected');
});
您可能還想考慮await在異步函式中運行客戶端連接方法。所以你不必擔心事件監聽器。
const redis = require('redis');
(async () => {
try {
const client = redis.createClient({ socket: { port: 6379 } });
await client.connect();
console.log('connected');
} catch (err) {
console.error(err)
}
})()
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/369892.html
標籤:javascript 节点.js Redis
下一篇:未獲得授權標頭值錯誤,
