2013-02-08 67 views
0

所以我知道fs模塊使用process.cwd()而不是模塊的實際位置,但我仍然有一個文件路徑問題。使用fs時的文件路徑

所以我有一個應用程序的結構是這樣的:

- app 
    - controllers 
    - models 
    - views 
    - tmp 
    - index.js 

我在控制器中創建的CSV文件,並希望將其保存在tmp

因此,考慮的是,儘管控制器是,

process.cwd() is '/app' 

我這樣做:

fs.open('tmp/FILENAME','w',function (err,fd) { 

ERR爲空,這樣似乎很好地工作。所以,應該是在/ app/tmp目錄/

在另一方面,在index.js我

res.attachment(__dirname + '/tmp/FILENAME') 

這console.logged當

/app/tmp/FILENAME 

這是正確的。很顯然,另一半導致了這個問題。

所以我的問題是 - 考慮到process.cwd(),在這種情況下使用fs的正確方法是什麼? 有點難倒,有什麼想法?

+0

很難說出你在問什麼,你可以重新表述,這樣你的問題就清楚了嗎? – robbrit 2013-02-08 21:38:59

+0

好點,編輯 – Niall 2013-02-08 21:52:32

回答

1

依靠process.cwd()是有風險的,您稍後介紹的其他代碼可能會改變它。使用__dirname + '/tmp/FILENAME'更安全。

+0

那麼,我該如何利用'__dirname'來獲取一個實際上是我所在的兄弟姐妹的目錄呢? – Niall 2013-02-08 22:23:30

+0

__dirname +「../」+ sibling_name – 2013-02-08 22:27:39