在Node js命令行应用程序中caching

我正在尝试使用Node.js构build命令行应用程序

我使用节点caching来caching来自API调用的一些数据。

但是,当我尝试检索数据myCache.get( "key" )以前使用myCache.set( "key", data, 10000 ); 它总是返回undefined

我想这个问题是当我从命令行运行应用程序我每次创buildcaching对象const myCache = new NodeCache();

但是,如果不创build对象,caching将无法工作。 有没有解决这个问题?

您正在使用的caching库将数据保存在应用程序内存中。 所以一旦应用程序退出,caching将丢失。

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

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

更新:快速search给这个库: https : //www.npmjs.com/package/cache-manager ,我没有使用它,但文档说,它支持可能不同的存储持久化数据和node-cache-manager-fs可能适合你的情况。