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

在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;
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Node Redis 间件是一个用于连接和操作 Redis 数据库的间件。它提供了简单、方便的 API,使得在 Node.js 应用程序使用 Redis 变得更加容易。 使用 Node Redis 间件,你可以轻松地与 Redis 数据库进行交互,执行各种操作,如设置和获键值对,发布和订阅消息,以及执行复杂的操作如事务和管道等。它还提供了连接池和集群支持,以优化性能和可扩展性。 以下是一个简单的示例,演示了如何在 Express 应用程序使用 Node Redis 间件: ```javascript const express = require('express'); const redis = require('redis'); const app = express(); const client = redis.createClient(); // 设置间件 app.use((req, res, next) => { req.redis = client; next(); }); // 示例路由处理程序 app.get('/get/:key', (req, res) => { const { key } = req.params; req.redis.get(key, (err, value) => { if (err) { res.status(500).send('Error retrieving value from Redis'); } else { res.send(`Value for key ${key}: ${value}`); } }); }); app.listen(3000, () => { console.log('Server listening on port 3000'); }); ``` 在上面的示例,我们创建了一个 Redis 客户端,并将其作为间件附加到 Express 应用程序。然后,在路由处理程序,我们可以通过 `req.redis` 访问 Redis 客户端,并执行相应的操作。 需要注意的是,这只是一个简单的示例,你可以根据具体需求和业务逻辑来扩展和定制间件的功能。同时,确保在使用间件时处理错误和异常情况,以保证应用程序的稳定性和可靠性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值