2016-08-25 12 views
1

こんにちはこれは私のフォルダ構造です。私はapp.js.でserverError.logファイルを要求/インポートしたいと思っています。Nodejsの相対パスエラー?

configファイルを要求するには 「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

あなたは1つのよりレベルアップ(すなわち '」../../../../行ってはなりません。.. /../log/serverError.log "')? –

+0

2台のマシンで同じコードを使用していて、動作しているものと動作していないものがある場合は、両方のマシンで現在の作業ディレクトリが同じであることを確認してください。つまり、両方のマシンで同じようにノードプロセスを開始していますか? – cartant

+0

はいcartantはどちらも同じ方法ですが、他のマシンでは動作しますが、マシンでは正常に動作しません。 –

答えて

-1

で私を助けることができる私は)(特にpath.resolve、PATHモジュールを使用することをお勧めいたしますでしょう。

path.resolveは、関数に渡したアイテムへの絶対パスを生成します。

だから、例えば、あなたのコードは次のようになります。

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

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