Node.js における path.join() の利点の分析

Node.js における path.join() の利点の分析

文字列連結ではなく path.join() メソッドを使用する必要があるのはなぜか疑問に思うかもしれません。

'/path' + '/' + 'to' + '/' + 'test.txt' // '/path/to/test.txt'
 
['/path', 'to', 'test.txt'].join('/') // '/path/to/test.txt'

1. Windows のサポート。 Windows では、パス区切り文字としてスラッシュ (/) ではなくバックスラッシュ (\) を使用します。

path.join() がこれを処理します。 path.join('data', 'test.txt') は、Windows だけでなく Linux と OSX でも 'data/test.txt' を返すためです。

2. エッジケースを処理するために使用されます。ファイル システム パスを操作する場合、多くのエッジ ケースが発生します。

たとえば、2 つのパスを手動で連結しようとすると、誤ってパス区切り文字が重複してしまう可能性があります。 path.join() メソッドは先頭と末尾のスラッシュを処理します。

path.join('data', 'test.txt') // 'data/test.txt'
path.join('data', '/test.txt') // 'data/test.txt'
path.join('data/', 'test.txt') // 'data/test.txt'
path.join('data/', '/test.txt') // 'data/test.txt'

知識ポイントの拡張:

1. path.join() メソッド

path.join() メソッドは複数のパラメータ文字列をパス文字列に結合します。

console.log(path.join(__dirname,'a','b'));現在のファイルのパスが E:/node/1 の場合、連結されたパスは E:/node/1/a/b になります。

console.log(path.join(__dirname,'/a','/b','…'));パスの先頭の / は連結に影響しません。… は前のレベルのファイルを表し、連結結果はE:/node/1/aになります。

console.log(path.join(__dirname,'a',{},'b'));また、path.join() はパス文字列の検証にも役立ちます。文字列が不正な場合は、エラーがスローされます: パスは文字列である必要があります。

2. path.resolve() メソッド

path.resolve()メソッドは、プログラムをルートディレクトリとして開始点として使用し、パラメータに基づいて絶対パスを解決します。

アプリケーションをルートディレクトリとして使用する

通常の文字列はサブディレクトリを表す

/ は絶対パスのルートディレクトリを表します

console.log(path.resolve());アプリケーションの起動ファイルのディレクトリを取得します (現在の実行ファイルの絶対パスを取得します) E:\zf\webpack\1\src

console.log(path.resolve('a','/c')); E:/c 、/ スラッシュはルートディレクトリを表すため、結果は E:/c になります。

そのため、スプライシング時に/スラッシュを使用するときは注意が必要です。

console.log(path.resolve(__dirname,'img/so')); E:\zf\webpack\1\src\img\soこれは、パスが実際に存在するかどうかに関係なく、ファイル パスを連結します。

console.log(path.resolve('wwwroot', 'static_files/png/', '…/gif/image.gif')) E:\zf\webpack\1\src\wwwroot\static_files\gif\image.gif

最初の文字列が / で始まっていないため、これは現在のアプリケーション起動ファイルの絶対パスと後続のすべての文字列の連結です。

...親ディレクトリも表します。

Node.js における path.join() の利点に関するこの記事はこれで終わりです。Node.js における path.join() の利点についてさらに詳しく知りたい場合は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  ova ファイルを VMware にインポートする際の落とし穴の概要

>>:  Alibaba Cloud Server Ubuntu 上の Workbench が MySQL に接続できない問題の解決策 (テスト済み)

推薦する

MySQL 数十億のデータのインポート、エクスポート、移行に関するメモ

最近はMySQLのメモをたくさん取っていますが、それは主に会社のOracleが比較的安定していてメン...

VSCode+CMake+Clang+GCC 環境構築チュートリアル (Win10 の場合)

大学院入試に備えて、C/C++ を使って基本的なデータ構造とアルゴリズムを実装する予定です。アルゴリ...

HTTPS の有効化に関する経験の共有

国内のネットワーク環境が悪化し続ける中、さまざまな改ざんや乗っ取りが後を絶たず、サイト全体をHTTP...

Windows 10 で MySQL をダウンロードするための詳細なチュートリアル

MySQL のバージョンは、Enterprise Edition と Community Editi...

mysql-8.0.16 winx64 最新インストール チュートリアル (画像とテキスト付き)

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

CSS を使用して固定左列と適応右列の 2 列レイアウトを実現する 4 つの方法

1. フロート+オーバーフロー:非表示このメソッドは主にオーバーフローを通じて BFC をトリガーし...

CSS で 3D ルービック キューブを実装するサンプル コード

今日は簡単な3Dルービックキューブを作ってみましょうまずはレンダリングを見てみましょう!これを学んだ...

Nginx ローカル ディレクトリ マッピング実装コード例

他のデバイスの画像をローカルディレクトリにマウントするなど、サーバー上の静的リソースにアクセスする必...

MySQL 8.0.16 winx64 のインストールと設定方法のグラフィックチュートリアル

最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...

vue3 で vue-router を使用するための完全な手順

序文ルーティングの管理は、ほとんどのシングルページ アプリケーションにとって不可欠な機能です。 Vu...

jQueryはマウスドラッグ画像機能を実装します

この例では、jQuery を使用してマウス ドラッグ イメージ機能を実装します。まず、ラッパーを設定...

Vue ルーティングフォールバックに最適なソリューション (vue-route-manager)

目次ルーティングマネージャー背景はじめる問題を解決する方法要約するルーティングマネージャー各ジャンプ...

WeChatミニプログラムでのマップの正しい使用例

目次序文1. 準備2. 実際の戦闘2.1 ミニプログラムの権限を設定する2.2 カプセル化ツールの機...

TomcatはXMLを解析し、リフレクションを通じてオブジェクトを作成します。

次のサンプル コードでは、Tomcat が XML を解析し、リフレクションを通じてオブジェクトを作...

カルーセル効果を実現するネイティブJavaScript

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...