2012-05-05 9 views
1

本番環境で失敗します製造。これを削除してルートを手動で追加すると、正常に動作します。何か案は?生産に、現在のディレクトリがあなたの「ルート」ディレクトリの親に設定され取得されていないと思わは、私はdynaimcally thierルート内のすべての彼らのルート/そうのようなindex.jsを生成する多くの人々を見てきた

node.js:134 

throw e; // process.nextTick error, or 'error' event on first tick 

Error: ENOENT, No such file or directory './routes' 
    at Object.readdirSync (fs.js:376:18) 
    at Object.<anonymous> (/app/routes/index.js:4:15) 
    at Module._compile (module.js:402:26) 
    at Object..js (module.js:408:10) 
    at Module.load (module.js:334:31) 
    at Function._load (module.js:293:12) 
    at require (module.js:346:19) 
    at Object.<anonymous> (/app/server.js:50:14) 
    at Module._compile (module.js:402:26) 
    at Object..js (module.js:408:10) 
Process died with exit code 1. Restarting... 

答えて

3

から何の出力を得るのですか。おそらく__dirnameを使用してください。 。the docsから:

現在実行中のスクリプトが常駐ディレクトリの名前も

fs.readdirSync(path.join(__dirname, "routes")) 

、あなたは'utf8'を渡す必要はありません。また、Syncの関数をコードに使用することには非常に注意してください。通常、サーバーは要求を受け付ける前にトップレベルのスコープでOKです。この場合はOKです。

+0

なぜ '__dirname'ではなく' path.join(__ dirname、 "routes") 'を使用していますか?パスはどこから来たのですか? – Pardoner

+0

'__dirname +"/routes " - ' 'path.join'はプラットフォームに依存しません。 'path'は' var path = require( 'path') 'から来ます。 [node.jsパスモジュールのドキュメント](http://nodejs.org/api/path.html)を参照してください。 –

3

:あなたはそれが役立つだろうと思えば

は、ここに私のエラーです。どのようにプロダクションであなたのアプリを起動していますか?あなたの主なスクリプトが住んでいる場所に関連していない - マークBesseyは彼の答えに、あなたの現在のディレクトリからroutesディレクトリを解決していると言うと、あなたは

console.log(process.cwd());