2016-08-25 51 views
1

你好這是我的文件夾結構,我想要/導入app.js中的serverError.log文件。Nodejs中的相對路徑錯誤?

要求我使用 「require(../../../../../config/db.js)」的配置文件,它對db.js.But工作正常,只要我我正在給readFile(「../../../../../log/serverError.log」)。

它沒有給出這樣的文件或目錄,打開'../../../../../log/serverError.log'。但它在其他機器上工作正常。

因此,誰能幫我這個

/home/akash/MYB_GIT 
└── mbox 
    ├── config 
    │   └── db.js 
    ├── log 
    │   └── serverError.log 
    ├── services 
    │   └── Node 
    │    ├── api 
    │    │   └── user 
    │    │    └── web 
    │    │     └── app.js 
    │    └── modules 
    │     ├── Admin 
    │     │   └── api1.js 
    │     ├── Guest 
    │     │   └── api2.js 
    │     └── user 
    │      └── api3.js 
    └── Test 
     └── seneca_client 
      ├── audit 
      └── user 
+0

你不應該去多了一個層次了(即'」 ../../../../ .. /../登錄/ serverError.log「')? –

+0

如果你在兩臺機器上有相同的代碼 - 一個工作,另一個不工作 - 你確定兩臺機器上的當前工作目錄是相同的嗎?也就是說,你確定你在兩臺機器上以相同的方式啓動節點進程嗎? – cartant

+0

是cartant都是相同的方式。但它的工作罰款爲其他機器,但不是在我的機器。 –

回答

-1

我會建議你使用該路徑模塊,特別是path.resolve()。

path.resolve將生成您提供給該函數的項目的絕對路徑。

因此,例如,你的代碼將是:

readFile(path.resolve("../../../../../log/serverError.log")) 

https://nodejs.org/docs/latest/api/path.html