Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在nodejs中的多个运行之间保留临时文件?_Javascript_Node.js_Caching_Temporary Files - Fatal编程技术网

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

Javascript 如何在nodejs中的多个运行之间保留临时文件?,javascript,node.js,caching,temporary-files,Javascript,Node.js,Caching,Temporary Files,我有一个生成文件的小节点模块 由于它非常慢,并且对于相同的输入会产生相同的结果,所以我希望将最后一次编译与一个控件散列一起保存 现在的问题是,我必须将临时文件放在哪里,以便轻松访问 如果依赖于我的模块的主节点应用程序重新启动,缓存也应该可以工作。我将收集我的所有评论并给出答案 据我所知,没有NPM标准规定模块将其临时文件放在何处。放置它们的最佳位置取决于文件权限的配置方式、您正在运行的操作系统、主机应用程序运行的权限、主机环境的类型等 逻辑选项如下所示: 在操作系统临时目录中 在模块目录下的te

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

由于它非常慢,并且对于相同的输入会产生相同的结果,所以我希望将最后一次编译与一个控件散列一起保存

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


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

我将收集我的所有评论并给出答案

据我所知,没有NPM标准规定模块将其临时文件放在何处。放置它们的最佳位置取决于文件权限的配置方式、您正在运行的操作系统、主机应用程序运行的权限、主机环境的类型等

逻辑选项如下所示:

  • 在操作系统临时目录中
  • 在模块目录下的
    temp
    子目录中
  • 在可配置目录中,模块用户可以通过配置参数或环境变量指定该目录
  • 您可以找到操作系统临时目录的位置

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


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

    您可以将它们放在文件系统中您有读/写权限且普通公众无权访问的任何位置。具体位置取决于您的操作系统、部署/托管环境、权限设置方式、,您的应用程序在文件系统中的部署位置,以及您的应用程序运行的权限-您在问题中没有透露任何权限。我知道节点可以将文件放置在任何位置-但npm模块的预期位置在哪里?正如我在评论中所说,这取决于您没有透露的很多内容。对于如何放置适用于所有操作系统和所有部署场景的模块特定临时文件,没有“npm标准”。就我个人而言,我会将一个应用程序的所有临时文件集中在某个
    缓存
    子目录中,而不是让每个模块自己处理。但是,这只是一个人的意见。我不知道有什么标准。我说的不是应用程序,而是应用程序可能使用的npm模块;)正如我所说,对于模块在何处放置我知道的临时文件,没有约定。如果我使用的是一个模块,我不想让它自己决定,因为它可以完全根据部署场景而变化。我希望这是一个模块的配置选项,以便应用程序可以告诉它在哪里放置临时文件。如果您想要一个默认值,请使用操作系统默认的temp文件,或者在模块目录下创建一个名为“temp”的子目录并使用它。但对于某些部署场景来说,这可能并不理想。