Redis客户端无法在GET上执行

kjthegm6  于 2022-10-31  发布在  Redis
关注(0)|答案(1)|浏览(341)

我试图在redis中使用nodejs来获取/设置,我已经确保了它的async/await,按照文档,但从我下面的代码中,我只会点击控制台日志1。
我是不是漏掉了什么明显的东西?
谢谢

const Redis = require('redis')

const redisClient = Redis.createClient({
    url: 'redis://*****:*****@redis-******.cloud.redislabs.com:16564'
})
redisClient.connect()
redisClient.on('error', (err) => console.log('Redis Client Error', err));
redisClient.set('name', 'Steph'); // THIS WORKS FINE

router.get('/market/product/:slug', async (req,res) => {
    const productId = req.params.slug
    console.log('console log one')

    await redisClient.get(productId, async (error, history) => {
        console.log('console log two')
        if (error) console.error(error)
        if (productId != null) {
            console.log('console log three')
            res.json(JSON.parse(history))
        } else {
            console.log('console log four')
            await ProductPrices.find({productId: productId})
                .lean()
                .sort({date: 1})
                .exec((err, data) => {
                    if (err) {
                        return res.status(400).json({
                            error: errorHandler(err)
                        })
                    }

                    redisClient.set(productId, JSON.stringify(data))
                    res.json(data)
                })
        }
    })
})
yzuktlbb

yzuktlbb1#

我查阅了你在问题的注解中提到的软件包的文档,我找不到任何使用回调的地方。
尝试

let history= await redisClient.get(productId)
if (!history) {
    if (productId != null) {
        console.log('console log three')
        res.json(JSON.parse(history))
    } else {
        console.log('console log four')
        await ProductPrices.find({ productId: productId })
            .lean()
            .sort({ date: 1 })
            .exec((err, data) => {
                if (err) {
                    return res.status(400).json({
                        error: errorHandler(err)
                    })
                }

                redisClient.set(productId, JSON.stringify(data))
                res.json(data)
            })
    }
}

相关问题