2013-01-14 28 views
1

在node.js中,我試圖找出我的應用程序的設置文件應該放在哪裏的路徑,以一種很好的跨平臺方式。node.js中的跨平臺隱藏設置文件

  • Unix上:〜/。我-應用程序/文件
  • 的Windows:%APPDATA%\我的應用程序內\文件
  • 的Mac:〜/庫/ Application Support /我 - 應用程序/文件(或〜 /.my-app/file)

或沿着這些線。

我不想用硬編碼查找用戶所在的操作系統,因爲這看起來非常可怕,而且完全沒有前景。我希望ospathfs有東西,但我一直無法找到它。

回答

3

因此,您正在尋找的是path-extra模塊,它爲Node的內置路徑添加了一些實用功能。我發現它with this simple search in NPM,只是讓你知道:npm的搜索引擎越來越好了!

你使用這種方式:

var path = require('path-extra'); 
var appPath = path.datadir('appname'); 
var myFile = path.join(appPath, 'myFile.txt'); 
... 
1

節點中沒有什麼像你正在尋找的東西。你將不得不自己寫。

+0

我很擔心這一點。似乎有點疏忽。 – ckknight

+0

也許不是。它可以用兩種方式來論證。 – shargors

+0

是的,虛擬機維護人員可能很難決定進入哪一種方便的下載以及應該省略什麼。恕我直言節點的方法只捆綁裸露的基本要素是相當成功的;我比Python的'電池包括'的方式更喜歡它,它具有強烈的生長大量生鏽的補丁的傾向(他們仍然在2013年發佈了Sun音頻文件讀/寫庫...)。然後再一次,當Python被構思時,數據仍然在騾子山背上揹着,所以一次訂購很方便,得到一切。 – flow

-1

在回答「我一直找不到它」的問題時,.... checkout node.js'path'模塊,特別是path.normalize和path.join。

因爲「路徑」解決了跨平臺路徑構建問題,所以我沒有發現需要其他模塊。

http://nodejs.org/api/path.html#path_path_normalize_p 

http://nodejs.org/api/path.html#path_path_join_path1_path2 

下面是我使用path.join ...

var pth = require('path'); 
var fspath_myfile  = pth.join(__dirname,'fs','remote','myfile.txt'); 

如果我跑出來的目錄,其產生這些文件/路徑值「PROJECTDIR ':

C:\projectdir\fs\remote\myfile.txt 

/home/myusername/projectdir/fs/remote/myfile.txt 
+0

不知道「無法找到」你的答案的哪一部分對......有幫助...... OP特意要求一種方法來獲得一個指向最佳位置的指針「在我的應用程序的設置文件應該在哪裏,在一個不錯的跨平臺方式「,你只是告訴他,」看起來,NodeJS的'路徑'在Linux和Windows上都能運行「。 – flow