我试图在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)
})
}
})
})
1条答案
按热度按时间yzuktlbb1#
我查阅了你在问题的注解中提到的软件包的文档,我找不到任何使用回调的地方。
尝试