我如何处理redis和bluebird的错误?

问题描述 投票:0回答:1

我一直面临着redis和async等问题。

我有旧的redis.get回调:

redis.get(token, async (error, result) => {
            if (error) {
                return res.status(404).json({ msg: 'Confirm token is invalid.' });
            }

            if (result === null) {
                return res.status(400).json({ msg: 'Confirm token is expired.' });
            }
})

但我想重构他的async / await

bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);
const result = async redis.asyncGet(token)

我成功地得到了结果,但我怎么能得到错误?

谢谢

javascript node.js redis node-redis
1个回答
0
投票

拥有代码,您只需要在try / catch语句中使用async / await语法包围redis调用:

bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);

try {
  const result = redis.get(token);
} catch (e) {
  return res.status(400).send({ msg: 'Confirm token is expired.' })
}
© www.soinside.com 2019 - 2024. All rights reserved.