Node.js 节点JS中有节点缓存模块,设置后无法获取数据

Node.js 节点JS中有节点缓存模块,设置后无法获取数据,node.js,caching,node-modules,Node.js,Caching,Node Modules,Node.js版本:v6.10.3 操作系统:Windows 我正在尝试用节点JS实现缓存。使用节点缓存模块。 我使用下面的代码将数据设置到缓存中,并从缓存中获取数据 const NodeCache = require( "node-cache" ); const myCache = new NodeCache( { stdTTL: 3000, checkperiod: 3000} ); obj = { my: "Special", variable: 42 }; myCache.set(

Node.js版本:v6.10.3 操作系统:Windows

我正在尝试用节点JS实现缓存。使用节点缓存模块。 我使用下面的代码将数据设置到缓存中,并从缓存中获取数据

const NodeCache = require( "node-cache" );

const myCache = new NodeCache( { stdTTL: 3000, checkperiod: 3000} );

obj = { my: "Special", variable: 42 };

myCache.set( "myKey", obj ); // Calling DB, fetch the data and set in to cache for first time when client requests.

value = myCache.get( "myKey" );

console.log('value: ',value);

console.log(JSON.stringify(myCache));
但是一旦我设置了数据,下次当我试图获取数据时(没有设置数据,因为我已经设置了数据),它会给我未定义的值。打印缓存时,我看不到该值(根据下面的示例,该值为{my:“Special”,变量:42})。 因此,值不会持久化到缓存中。我已经将stdTTL设置为3000毫秒,所以数据应该在3000毫秒内可用,但在缓存中不可用


我是否需要使用TTL设置某些内容,或者我们是否有其他设置来获取缓存中保存的值?

在我测试时,它对我来说工作正常,您能否确认您是否仅在同一会话中进行了测试。因为如果您使用console进行测试并关闭会话,则不会保存会话。如果您设置的是对象、字符串或函数以外的任何内容,则会得到一个值。如果是函数,则必须解析函数并设置函数的结果。