2016-08-25 70 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