[解決済み] node.jsでpath.joinを使う必要があるのでしょうか?
質問
誰もが知っているように、Windowsはバックスラッシュで、Unixはフォワードスラッシュでパスを作成します。
path.join()
で常に正しいスラッシュが使われます。ですから、例えば Unix でのみ使われる
'a/b/c'
と書く代わりに、次のようにします。
path.join('a','b','c')
の代わりに
しかし、この違いにもかかわらず、パスを正規化せず(例えば path.join を使用)、単に
a/b/c
のようにパスを記述するだけで、node.js は Windows 上でスクリプトを実行するのに何の問題もないようです。
では
path.join('a','b','c')
の上に
'a/b/c'
? どちらもプラットフォームに関係なく動作するように見えますが...。
どのように解決するのですか?
Windows ファイルシステムでは、パス区切り文字としてフォワードまたはバックスラッシュのいずれかを使用しても問題はありません (これは DOS の時代からそうでした)。唯一の現実的な問題は、Windows コマンド ライン プロセッサ (より具体的には、Windows ネイティブ コマンド ライン ユーティリティ) が、フォワード スラッシュをパスのコンポーネントではなく、オプション指定子として解釈する傾向があることです。したがって、サブプロセスとして実行されるWindowsコマンドにパスを渡す必要がある場合、バックスラッシュ付きのパスが必要です。また、パスを返す Windows API 呼び出し (および Windows API を呼び出す高位言語のメソッド) はバックスラッシュを使用するので、サブプロセスにパスを渡していない場合でも、正規化する必要があります。
関連
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsでファイルを書き込む
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.jsで環境変数を読み込む
-
[解決済み】WindowsでTCPまたはUDPポートをリッスンしているプロセスを見つけるにはどうすればよいですか?
-
[解決済み】node.jsアプリをバックグラウンドサービスとして実行するにはどうすればいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
-
[解決済み】MongoClient v3.0使用時、db.collectionは関数ではない
-
[解決済み】モジュール '@babel/core' が見つかりません。
-
[解決済み】Passport.js - エラー: ユーザーのセッションへのシリアライズに失敗しました。
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み] MongoDB でコレクションを日付順に並べるには?
-
[解決済み] nodejs - http.requestでresponse.writeを使用する場合、第一引数は文字列またはBufferでなければなりません。
-
[解決済み] Json Web Token verify() return jwt malformed
-
[解決済み] エラーです。Cannot find module 'ejs'
-
[解決済み] MongoNetworkError: 最初の接続でサーバー [localhost:27017] への接続に失敗 [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] 。