2016-04-30 53 views
2

我有一個生成文件的小節點模塊。如何在nodejs中的多次運行之間保留臨時文件?

因爲它實在是太慢了,並會產生相同的結果對於相同的輸入,我想與控制哈希一起保留上次編譯。

現在的問題是我在哪裏必須把臨時文件,所以它可以很容易地訪問?

如果依賴於我的模塊的主節點應用程序重新啓動,緩存也應該工作。

+1

您可以將它們放在您具有讀/寫訪問權限的文件系統的任何位置,以及一般公衆無權訪問的位置。這取決於您的操作系統,您的部署/託管環境,您如何設置權限,您的應用程序在文件系統中的部署位置以及您的應用程序運行的權限 - 您在問題中沒有披露您的應用程序。 – jfriend00

+0

我知道節點可以將文件放置在任何位置 - 但npm模塊的預期位置在哪裏? – jantimon

+1

正如我在評論中所說的那樣,這取決於很多你不透露的東西。在所有操作系統和所有部署方案中應用模塊特定臨時文件的位置沒有「npm標準」。就我個人而言,我會將某個應用程序的所有臨時文件集中在某個單獨的「cache」子目錄中,而不是讓每個模塊自行完成。但是,這只是一個人的意見。沒有我知道的標準。 – jfriend00

回答

1

我會收集我的所有意見到一個答案。

據我所知,對於其中一個模塊會把它的臨時文件沒有NPM標準。最好的地方,讓他們可以依賴的文件權限是如何配置的,有什麼工作你正在運行的系統,有什麼權限的主機應用程序在其下運行,託管環境的類型,等等

邏輯選項如下:

  1. 在OS temp目錄
  2. 在模塊目錄之下的temp子目錄。
  3. 在模塊的用戶可以通過配置參數或通過環境變量指定的可配置目錄中。

您可以在找到操作系統臨時目錄的位置。

模塊下方的temp子目錄。請記住,可以有多個使用模塊的進程,因此如果要將文件放置在可能由多個進程共享的位置,則需要使用生成的唯一名稱(如果文件應按每個進程單獨分隔)或如果文件應該在進程之間共享,則適當鎖定。

而且,不要忘了清理維護所以有臨時文件沒有積聚隨着時間的推移。

相關問題