javascript - 如何从缓存中检索值?
问题描述
我正在使用node-cache-manager来管理 Node.js 缓存。
我已成功将一个项目添加到缓存中:
import cacheManager from 'cache-manager';
const memoryCache = cacheManager.caching({store: 'memory', max: 100, ttl: 3600/*seconds*/});
memoryCache.set('testItem', { 'key': 'testValue'}, {ttl: 36000}, (err) => {
if (err) { throw err; }
});
但是当我想从缓存中检索一个项目时,它会响应Result: [Object Object]
这是代码:
let cacheResult = await memoryCache.get('testItem');
console.log('Result: ' + { cacheResult });
解决方案
啊哈!
您已将变量定义为 JSON OBJECT,因此 Javascript 将其视为 Object [Object Object]。
为避免这种情况,您必须将 JSON 对象转换为字符串您必须这样做:
memoryCache.set('testItem', JSON.stringify({ 'key': 'testValue'}), {ttl: 36000}, (err) => {
if (err) { throw err; }
});
而当你想检索变量的内容时
let cacheResult = await JSON.parse(memoryCache.get('testItem'), true);
现场示例:
var json = JSON.stringify({"name":"John", "age":30, "city":"New York"});
var obj = JSON.parse(json, true);
console.log(obj);
console.log('Name of user: ' + obj.name)
推荐阅读
- python - 我有一个列表,我想计算列表中每个项目与列表中所有其他项目的平均距离
- excel - 将快捷方式 st、nd、rd 连接到列值 - Excel
- azure - 如何在 Azure 媒体播放器中测试 FairPlay 加密的流 url?
- c++ - 非 const 传递给参数为 const 类型的函数
- javascript - js 禁止函数运行 | 立即给它一个超时时间
- python - Python Dataframe 总是选择中间行
- excel - Can I name an CSV export with a range/cell number from the original worksheet and also save a PDF version?
- python-3.x - ANTLR parsing big files
- php - Eclipse PDT - Filesystem changes or new Composer autoload paths break autoloader
- c# - Modbus 2.0 handling exceptions in C#