在Node js命令行应用程序

时间:2017-12-03 13:37:20

标签: javascript node.js caching

我正在尝试使用Node.js构建命令行应用

我使用node-cache来缓存来自API调用的一些数据。

但是,当我尝试检索之前使用myCache.get( "key" )设置的数据myCache.set( "key", data, 10000 );时,它始终返回undefined

我想问题是当我从命令行运行应用程序时,每次const myCache = new NodeCache();我都在创建缓存对象。

但是如果不创建对象,缓存就不会明显起作用。这有什么工作吗?

2 个答案:

答案 0 :(得分:2)

您正在使用的缓存库将数据保留在应用程序内存中。因此,一旦应用程序退出,缓存就会丢失。

在Web应用程序中情况不同,因为应用程序永远不会退出(除非它崩溃),因此缓存会保留数据。

解决此问题的一种方法是将缓存存储在外部存储中,如Redis(但您必须运行Redis服务器),或者只是在文本文件或SQLite数据库中。您需要为此编写一个简单的缓存库,或者搜索提供持久存储的库。

更新:快速搜索提供了这个库:https://www.npmjs.com/package/cache-manager,我没有使用它,但文档说它支持可能不同的存储来保存数据,而node-cache-manager-fs可能对您有用情况下。

答案 1 :(得分:0)

使用这个 const NodeCache = require("节点缓存"); const myCache = new NodeCache(); 在代码顶部

首先像我们通常声明的节点模块一样在顶部声明它 所以它工作正常 设置,获取,删除都很好