const redis = require('redis');
const getAsync = promisify(client.get).bind(client);
router.get('/get_all', async (req, res) => {
let language = req.query.language;
let data = '';
try {
data = await getAsync(language);
}
catch (err) {
console.log(err);
}
if (data) {
console.log('Data is received from Redis Cache!');
res.send(data);
}
else {
try {
const result = await Users.find({
language: language
});
client.setex(language, 86400, JSON.stringify(result));
res.send(result);
}
catch (err) {
console.log('ERROR');
console.log('MONGO DB RETURNED THE FOLLOWING ERROR');
console.log(err);
res.end();
}
}
}
这就是我用mongod db实现redis缓存的方式。
*这是实施的正确方法吗?
如果有误,请告诉我如何执行。
我现在面临的一个问题是,如果我添加try和catch块到 const data = await getAsync(language);
我遇到错误。
UnhandledPromiseRejectionWarning:未处理的承诺拒绝。该错误是由不带catch>块的异步函数内部抛出,或者是拒绝了.catch()无法处理的诺言而引起的。 >(拒绝ID:2)
使用两个try和catch块编辑了代码。
这是用mongo实现redis的好方法吗?