私はデジタル海洋で動作するノード/エクスプレスサーバを使用して自分用の単純なAPIを作成しようとしています。しかし、私はセットアップを持ってしても、そのたびので、LinuxのサービスがサーバがLinuxサービスとして起動したときにreadFileSyncがエラーを起こします
私はCMDラインnode server
から手動でサーバーを起動したときに完全に正常に動作
var data = fs.readFileSync('path/to/data.json','utf8');
です:サーバーのファイルに私はこのような何かを持っています私は私のデジタル海のマシンを再起動し、それが自動的にサーバを起動します、(ETC/initを/に保管)サービスは、次のようになります。
start on filesystem and started networking
respawn
exec node /path/to/server.js
問題は、私が要求を行うときということですサーバーは、CMDラインから手動で起動されていた場合は正常に動作しますが、サーバーがサービスを経由して起動されたときにreadFileSyncは、次のエラーをスローreadFileSyncはそれを呼び出す実行するサーバーへ:
Error: ENOENT, no such file or directory 'path/to/data.json'
at Error (native)
at Object.fs.openSync (fs.js:500:18)
at Object.fs.readFileSync (fs.js:352:15)
ファイルとディレクトリが存在する(私が直接見ることができる私のブラウザにdata.jsonファイルを要求する場合)
私は何が欠けていますか? readFileSyncを使用することと矛盾するサービスとしてサーバーを起動する方法がありますか?私がやろうとしていることに対する代替アプローチがありますか?そのjsonファイルにアクセスするための何らかのリクエスト/フェッチリソースモジュールを使用する必要がありますか?
:
その後、あなたserver.jsの内側に、あなただけのような何かを行うことができます!本当にありがとう :) – Nick