2017-03-23 10 views
6

典型的なnode.js/Expressアプリケーションでfsモジュールのメソッドが呼び出されたときの現在のディレクトリとは何ですか?例:fsモジュールの関数で使用される現在のディレクトリは何ですか?

abc.jpgの検索に使用されるデフォルトのフォルダは何ですか?それは含まれているスクリプトのフォルダの場所に依存していますか?

現在のディレクトリを照会する方法はありますか?


マイファイル構造は次のとおりです。members.jsで

ExpressApp1/ 
      app.js 
      routes/ 
       members.js 

私はそれはノードのインタプリタが(別名から開始されたディレクトリですfs.createWriteStream("abc")を持っているとabcExpressApp1/

+0

__dirnameグローバル変数は、ファイルのディレクトリを与えますそれはから記録されます。 –

答えて

10

で作成したファイル現在の作業ディレクトリ)、スクリプトのフォルダの場所のディレクトリではありません(あなたに感謝robertklep)。あなたがチェックアウトすることができ、詳細については

process.cwd() 

https://nodejs.org/api/fs.html

EDITを:あなたは、すべて、ExpressApp1ディレクトリでnode app.jsでapp.jsを開始しましたのでまた、現在の作業ディレクトリをすることによって得ることができる

相対パスは "ExpressApp1"フォルダからの相対パスであるため、fs.createWriteStream("abc")はファイルに書き込むための書き込みストリームをExpressApp1/abcに作成します。あなたはExpressApp1/routes/abcに書き込みたい場合は、members.jsにして、コードを変更することができます。詳しくは

fs.createWriteStream(path.join(__dirname, "abc")); 

https://nodejs.org/docs/latest/api/globals.html#globals_dirname

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

+3

これは、スクリプトが置かれているディレクトリではなく、 'node'インタプリタが起動したディレクトリ(別名現在の作業ディレクトリ)です。 – robertklep

+0

@ardilgulez私は自分の経験で私の質問を拡大しました。 –

+0

@robertklepはい、そうです。私は訂正した。 – ardilgulez

関連する問題