Node-redis: рдирдорд╕реНрддреЗ 2020 рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд░реЗрдбрд┐рд╕ рд╕реЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмреНрд▓реВрдмрд░реНрдб рдореЗрдВ рд▓рд╛рдП рдмрд┐рдирд╛ рдПрд╕рд┐рдВрдХреНрд╕ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдЕрдХреНрддреВре░ 2019  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: NodeRedis/node-redis

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рд╣рдо рдмреНрд▓реВрдмрд░реНрдб рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Feature Request duplicate

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

FOSS рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдкреВрдЫрдиреЗ рдХрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЧреИрд░-рдкреЗрд╢реЗрд╡рд░ рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЗрддрдиреЗ рд╡реНрдпрд╕реНрдд рд╣реИрдВ рдХрд┐ рдЖрдк рд╡рд┐рдирдореНрд░ рдпрд╛ рдЙрддреНрдкрд╛рджрдХ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╛ рддреЛ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдореБрджрд╛рдп рдХреА рдорджрдж рдХрд░реЗрдЧрд╛, рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦреЗрдВ, рдпрд╛ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдПрдХ рдЕрдЬреАрдмреЛрдЧрд░реАрдм рдПрдХ рд▓рд╛рдЗрдирд░ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЬрд╣рд╛рдВ рдЖрдк рд╕рд┐рд░реНрдл рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЪреАрдЬреЗрдВ рд╡реИрд╕реА рдирд╣реАрдВ рд╣реИрдВ рдЬреИрд╕реА рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рдпрд╛ рдЙрддреНрдкрд╛рджрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрднреА рднреА 2019 рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реЗрдбрд┐рд╕ рдХреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ (рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛)ред рддреЛ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрдбреЗрдЯ рдЖрдПрдЧрд╛ :(

@ xtianus79 рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк util.promisify рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣реИ рдирд╛?

рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреНрд░рддрд┐-рдЖрджреЗрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рдмрд╣реБ/EXEC рд╣реИ ... рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред

FOSS рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдкреВрдЫрдиреЗ рдХрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЧреИрд░-рдкреЗрд╢реЗрд╡рд░ рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЗрддрдиреЗ рд╡реНрдпрд╕реНрдд рд╣реИрдВ рдХрд┐ рдЖрдк рд╡рд┐рдирдореНрд░ рдпрд╛ рдЙрддреНрдкрд╛рджрдХ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╛ рддреЛ рдЙрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдЖрд░ рдЦреЛрд▓реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдореБрджрд╛рдп рдХреА рдорджрдж рдХрд░реЗрдЧрд╛, рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд░реЗрдбрд┐рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦреЗрдВ, рдпрд╛ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдПрдХ рдЕрдЬреАрдмреЛрдЧрд░реАрдм рдПрдХ рд▓рд╛рдЗрдирд░ рдореБрджреНрджрд╛ рдЦреЛрд▓рдирд╛ рдЬрд╣рд╛рдВ рдЖрдк рд╕рд┐рд░реНрдл рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЪреАрдЬреЗрдВ рд╡реИрд╕реА рдирд╣реАрдВ рд╣реИрдВ рдЬреИрд╕реА рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рдпрд╛ рдЙрддреНрдкрд╛рджрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

@ рдмреЙрдмреАрдмрд╛рд░реНрдХрд░ рдпрд╣ рдордЬрд╛рдХрд┐рдпрд╛ рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рдХреЛрдИ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реБрдЖ!
рдореИрдВ рднреА, рдЖрдк рдЬреЛ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЖрдк рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдареАрдХ рд╣реИ?

const { promisify } = require('util');
const redis = require('redis');

let client = new Proxy(redis.createClient(), {
    get: (target, propKey, receiver) => {
        let asyncKey = typeof propKey === 'string' && propKey.endsWith('Async') && propKey.slice(0, -5);
        if (asyncKey) {
            return promisify(Reflect.get(target, asyncKey, receiver)).bind(receiver);
        }
        return Reflect.get(target, propKey, receiver);
    }
});

// use
client.setAsync('string key', 'val').then(res => {
    console.log(res);
});

рдзрдиреНрдпрд╡рд╛рдж @ рдпреА-рд╣реБрдЖрди рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдкреВрд░реНрдг рд╡рд╛рджрд╛ рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ

@ xtianus79 @Innomalist рдореИрдВрдиреЗ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ - рдпрд╣ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдЗрд╕рдХреА рдПрдХрдорд╛рддреНрд░ рдирд┐рд░реНрднрд░рддрд╛) рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИ рдФрд░ рд╡рд╛рджрд╛ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИ: https://npmjs.com/package/handy-redisред

@mmkal рдХреНрдпрд╛ рдпрд╣ рдХреНрд▓рд╕реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ?

@BobbieBarker рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░рдгреАрдп рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдореБрдЦреНрдп рдореБрджреНрджрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдиреЗ рдмрд╣реБрдд рдХрдо рд░рдЦрд░рдЦрд╛рд╡ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИред

рдореИрдВ рдЗрд╕реЗ #864 рдХреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдПрдХ рд╡рд╛рджрд╛ рдЖрдзрд╛рд░рд┐рдд рдЧреНрд░рд╛рд╣рдХ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдзреАрдорд╛ рдерд╛ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВ рдмрд╛рдж рдореЗрдВ рдПрдХ рдлреАрдЪрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рдХреЛрдб рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдКрдВрдЧрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕