当前位置: 首页 > 工具软件 > node_redis > 使用案例 >

node redis 中的get()取键值方法返回value

何楷
2023-12-01

在node里面引入了redis,用于缓存token。其中用到了redis.get([键名])方法时,发现这个方法的返回值是boolean类型的,取到键值时返回的是true,但是我想要的是返回键值并把它赋值给一个变量。以下是我实现的相关代码:

RedisUtil.js

const config = {
    host: '127.0.0.1',
    port: '6379',
    password: '123456',
};

// 客户端
const RedisClient = redis.createClient(config);

/**
 * 获取键值同步返回
 * @param key
 * @returns {Promise<any>}
 */
RedisClient.synGet = async(key) => {
    const newGet = async(key) => {
        let val = await new Promise((resolve => {
            RedisClient.get(key, function (err, res) {
                return resolve(res);
            });
        }));
        return JSON.parse(val);
    };
    return await newGet(key);
};

module.exports = RedisClient;

使用

const RedisClient = require('../utils/RedisUtil');

const TOKEN = {
    /**
     * 保存在redis里面的token键名
     * @type {string}
     */
    NAME: 'VIP_WX_ACCESS_TOKEN',
    /**
     * access_token有效期,默认两个小时
     * @type {number}
     */
    EXPIRY_DATE : 60 * 60 * 2 * 1000,
};

function TokenService() {
}

/**
 * 获取有效的access_token,附于所有微信接口请求
 * @returns {Promise<any>}
 */
TokenService.getAccessToken = async () => {
	// 从redis同步获取键值并赋值
    let token = await RedisClient.synGet(TOKEN.NAME);
    console.log(token);
    return token;
};


module.exports = TokenService;
 类似资料: