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

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

因为它真的很慢,并会产生相同的input相同的结果,我想保持与控制散列最后编译在一起。

现在的问题是我需要在哪里放置临时文件,以便于访问?

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

我将把我所有的意见收集到一个答案中。

据我所知,对于模块放置临时文件的位置,没有NPM标准。 放置它们的最佳位置取决于如何configuration文件权限,您正在运行的操作系统,主机应用程序运行的权限,主机环境的types等等。

逻辑选项如下:

  1. 在OS临时目录中
  2. 在模块目录下的temp子目录中。
  3. 在可configuration的目录中,模块的用户可以通过configuration参数或通过环境variables指定。

你可以通过os.tmpdir()findOS临时目录的位置。

模块下面的temp子目录。 请记住,使用一个模块可以有多个进程,所以如果你把文件放在一个可以被多个进程共享的位置,那么你需要使用生成的唯一名称,如果这些文件应该是每个进程独立的如果文件应该在进程之间共享,则适当locking。

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