如何保持在nodejs中的多个运行之间的临时文件?
我有一个生成文件的小节点模块。
因为它真的很慢,并会产生相同的input相同的结果,我想保持与控制散列最后编译在一起。
现在的问题是我需要在哪里放置临时文件,以便于访问?
如果依赖于我的模块的主节点应用程序重新启动,caching也应该工作。
我将把我所有的意见收集到一个答案中。
据我所知,对于模块放置临时文件的位置,没有NPM标准。 放置它们的最佳位置取决于如何configuration文件权限,您正在运行的操作系统,主机应用程序运行的权限,主机环境的types等等。
逻辑选项如下:
- 在OS临时目录中
- 在模块目录下的
temp
子目录中。 - 在可configuration的目录中,模块的用户可以通过configuration参数或通过环境variables指定。
你可以通过os.tmpdir()
findOS临时目录的位置。
模块下面的temp
子目录。 请记住,使用一个模块可以有多个进程,所以如果你把文件放在一个可以被多个进程共享的位置,那么你需要使用生成的唯一名称,如果这些文件应该是每个进程独立的如果文件应该在进程之间共享,则适当locking。
而且,不要忘记清理维护,这样就不会随着时间的推移build立临时文件。