[REDIS] 사용 노드 8 util.promisify와 노드 - 레디 스
REDIS사용 노드 8 util.promisify와 노드 - 레디 스
때문에 기 v : 8.1.2
나는 레디 스 클라이언트 노드는 노드 8 util.promisify, 비 블루 버드 레디 스 사용합니다.
콜백 redis.get 괜찮습니다,하지만 promisify 유형 가져 오기 오류 메시지
내 테스트 코드
const util = require('util');
var redis = require("redis"),
client = redis.createClient({
host: "192.168.99.100",
port: 32768,
});
let get = util.promisify(client.get);
(async function () {
client.set(["aaa", JSON.stringify({
A: 'a',
B: 'b',
C: "C"
})]);
client.get("aaa", (err, value) => {
console.log(`use callback: ${value}`);
});
try {
let value = await get("aaa");
console.log(`use promisify: ${value}`);
} catch (e) {
console.log(`promisify error:`);
console.log(e);
}
client.quit();
})()
해결법
-
==============================
1.GET = util.promisify (client.get)를 보자 변경;
GET = util.promisify (client.get)를 보자 변경;
GET = util.promisify (client.get) .bind (클라이언트) 수 있도록;
나를 위해 그것을 해결 :)
-
==============================
2.레디 스 공식 REPO에서 뻔뻔 발췌
레디 스 공식 REPO에서 뻔뻔 발췌
-
==============================
3.또한 블루 버드 라이브러리를 사용할 수 있습니다 플러스 원숭이 패치는 당신을 위해 트릭을 할 것입니다. 예를 들면 :
또한 블루 버드 라이브러리를 사용할 수 있습니다 플러스 원숭이 패치는 당신을 위해 트릭을 할 것입니다. 예를 들면 :
const bluebird = require('bluebird') const redis = require('redis') async connectToRedis() { // use your url to connect to redis const url = '//localhost:6379' const client = await redis.createClient({ url: this.url }) client.get = bluebird.promisify(client.get).bind(client); return client } // To connect to redis server and getting the key from redis connectToRedis().then(client => client.get(/* Your Key */)).then(console.log)
from https://stackoverflow.com/questions/44815553/use-node-redis-with-node-8-util-promisify by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 나는 유휴 레디 스 클라이언트를 죽이지 않는 방법 (0) | 2020.01.14 |
---|---|
[REDIS] 레디 스 : 어떻게 정렬 된 세트 "보통"세트가 교차하는? (0) | 2020.01.14 |
[REDIS] 값없이 레디 스 저장소 키 (0) | 2020.01.14 |
[REDIS] 레디 스 단일 스레드 인 이유 (이벤트 구동) (0) | 2020.01.14 |
[REDIS] 레디 스 파이썬에서 다중 연결을 생성 및 관리 (0) | 2020.01.14 |