"server.js"というNode.jsファイルがあります。私のCD server.jsがあるディレクトリにあれば、フォルダ外からNode.jsファイルを実行すると、ファイルパスが破損する
bashシェルを使用してvar certPem = fs.readFileSync('cert_and_key_dev.pem', encoding='ascii');
、およびコマンドを実行します:スクリプトで
、私のようなものを使用していくつかのファイルを開封しております
を[mybashshell] $ノードserver.jsそれが動作
、私はエラーを得ません。サーバーが起動して実行されます。
ここで、server.jsファイルのあるディレクトリからcdすると、同じシェルコマンドを再度実行してサーバを起動します。
私の "cert_and_key_dev.pem"へのファイルパスが壊れていると文句を言っています。
私はこれが起こるようなことは期待していませんでした。私は実行されているスクリプトファイルで使用されているパスは、私がbashシェルコマンドを実行した場所ではなく、スクリプトファイルからの相対パスでなければなりません。
アイデア?
このメソッドとchbrownのメソッドとの間には何か利点はありますか?私はより適切な方法であるかどうか不思議です。 – Zhang
本当に目的にかかっています。より多くの "サーバ"を走らせているなら、私は '__dirname'に変更することを提案します。たとえば、フォルダアップロードスクリプトを実行していた場合は、chbrownのコードを使用することをお勧めします。現在の作業ディレクトリのパスを現在のスクリプトのディレクトリパスよりもどのくらいの頻度で使用するかを検討する必要があります。 –