情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでURLのパスをファイルシステムのパスに変換する

URLのパスの区切り文字には/が使用されます。

しかし、Windowsの場合、ファイルシステムのパスの区切り文字には\が使用されます。

そのため、http://host.co.jp/p/a/t/hのようなURLをC:\wwwroot\p\a\t\hのようなファイルシステムのパスに対応付けたい場合には区切り文字を/から\に変換しなければなりません。

これにはpath.normalize関数を使用します。

第1引数にパスを指定します。

返り値としてプログラムを実行しているOSのファイルシステムにおけるパスが得られます。


なお、URLからパス部分を取得するにはurl.parse関数を使用します。

url.parse関数に関しては下の記事を参照してください。

サンプルコード1

コマンドライン引数として与えられたURLをファイルシステムのパスに関連付ける例です。

path-normalize.js

var url = require('url');
var path = require('path');

if (process.argv.length < 3) {
    console.error('lack argument.');
    process.exit(1);
}

console.log(path.join('C:\\wwwroot', path.normalize(url.parse(process.argv[2]).pathname)));

実行結果

C:\work\node>node path-normalize.js http://host.co.jp/p/a/t/h
C:\wwwroot\p\a\t\h

C:\work\node>node path-normalize.js http://user:pass@host.co.jp:3000/p/a/t/h?query=string#hash
C:\wwwroot\p\a\t\h

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js