如何在 nodejs 中的多次运行之间保留临时文件?

How to keep temporary files between multiple runs in nodejs?

我有一个生成文件的小节点模块。

因为它真的很慢,而且对于相同的输入会产生相同的结果,所以我想将最后一次编译与控制散列一起保存。

现在的问题是我必须将临时文件放在哪里以便于访问?

如果依赖于我的模块的主节点应用程序重新启动,缓存应该也可以工作。

我会将我所有的评论收集到一个答案中。

据我所知,对于模块放置临时文件的位置没有 NPM 标准。放置它们的最佳位置取决于文件权限的配置方式、您使用的操作系统 运行、主机应用 运行 的权限、托管环境的类型等...

逻辑选项如下:

  1. 在 OS 临时目录中
  2. 在模块目录下面的 temp 子目录中。
  3. 在模块用户可以通过配置参数或环境变量指定的可配置目录中。

您可以通过 os.tmpdir().

找到 OS 临时目录的位置

模块下的一个temp子目录。请记住,可以有多个进程使用一个模块,因此如果您将文件放在一个可能由多个进程共享的位置,那么如果文件应该是每个进程分开的,则您需要使用生成的唯一名称或如果文件应该在进程之间共享,则适当锁定。

而且,不要忘记清理维护,这样就不会随着时间的推移积累临时文件。