[解決済み] node.jsの__dirnameと./の違いは何ですか?
質問
Node.jsでプログラミングをする際に、カレントディレクトリから離れた場所にあるファイルを参照する場合、そのファイルに対して
__dirname
変数ではなく、通常の
./
? 私はこれまで自分のコードで ./ を使ってきましたが、先ほど
__dirname
そして、もしそうなら、なぜそれがスマートなアイデアなのかを知りたいのです。
どのように解決するのですか?
要点
Node.jsでは。
__dirname
は常に現在実行中のスクリプトが存在するディレクトリ (
ご覧ください
). ですから、もしあなたが
__dirname
を
/d1/d2/myscript.js
であれば、その値は
/d1/d2
.
それに対して
.
を実行したディレクトリが表示されます。
node
のようなライブラリを使用する場合、ターミナルウィンドウのコマンド(つまり、作業ディレクトリ)。
path
と
fs
. 技術的には、最初は作業ディレクトリですが
process.chdir()
.
を使用した場合は例外です。
.
と共に
require()
. の中のパスは
require
への呼び出しを含むファイルからの相対パスです。
require
.
例えば...
例えば、以下のようなディレクトリ構造になっているとします。
/dir1
/dir2
pathtest.js
と
pathtest.js
には
var path = require("path");
console.log(". = %s", path.resolve("."));
console.log("__dirname = %s", path.resolve(__dirname));
を実行します。
cd /dir1/dir2
node pathtest.js
を取得します。
. = /dir1/dir2
__dirname = /dir1/dir2
あなたの作業ディレクトリは
/dir1/dir2
ということで
.
に解決されます。ですから
pathtest.js
は
/dir1/dir2
ということで
__dirname
も同様に解決されます。
しかし、このスクリプトを
/dir1
cd /dir1
node dir2/pathtest.js
を取得します。
. = /dir1
__dirname = /dir1/dir2
その場合、作業ディレクトリは
/dir1
ということで
.
に解決されましたが
__dirname
に解決されます。
/dir1/dir2
.
使用方法
.
内部
require
...
内部の場合
dir2/pathtest.js
を使用している場合は
require
の中にあるファイルをインクルードするために呼び出されます。
dir1
あなたは
常に
する
require('../thefile')
の中のパスが
require
は、常に呼び出したファイルからの相対パスです。作業ディレクトリとは関係ありません。
関連
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] -saveと-save-devの違いは何ですか?
-
[解決済み] package.jsonのチルダ(~)とキャレット(^)の違いは何ですか?
-
[解決済み] npm installの-saveオプションは何ですか?
-
[解決済み] npm package.jsonファイルのdependencies, devDependencies, peerDependenciesの違いは何ですか?
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.jsで現在のスクリプトのパスを取得するにはどうしたらいいですか?
-
[解決済み] Node.js + Nginx - 今度は何?
-
[解決済み] process.cwd() と __dirname の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み】モジュール 'internal/util/types' が見つかりません。
-
[解決済み】Node.jsのホスト名/IPが証明書のaltnamesと一致しない。
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み] MongoDB でコレクションを日付順に並べるには?
-
[解決済み] のエラーが発生しました。これはおそらくnpmの問題ではありません。上に追加のログ出力があると思われます
-
[解決済み] エラーです。Expressでビューの検索に失敗しました
-
[解決済み] "app.use(express.cookieSession())" に "secret" オプションが必要です。
-
[解決済み] Mongoose Schema がモデルとして登録されていません。