[Node.js] URL をいい感じに結合してくれる url-join が便利
Node.js で使えるライブラリ url-join が URL をいい感じに結合してくれて便利だったのでご紹介します。ちなみに、ブラウザ JavaScript でも利用できます。
- GitHub: jfromaniello/url-join: Join all arguments together and normalize the resulting url.
- npm: url-join
url-join の使い方
実際に url-join を利用してみたサンプルコードをご紹介します。
使ってみた感想としては / や URL クエリパラメータの ? & をよしなに考慮して、URL 文字列を結合してくれるのが嬉しいです。
通常のケース
まず、一般的なパターンで試してみました。何の問題もなさそうですね。
var urljoin = require('url-join'); urljoin('http://example.com', 'a', '/b/cd', '?foo=123'); // 'http://example.com/a/b/cd?foo=123' |
/ が連続するケース
/ (スラッシュ) が連続して出現する以下のようなケースでも url-join がいい感じに結合してくれます。うっかり // のように連続していても Trim してくれるのは嬉しいですね。
var urljoin = require('url-join'); urljoin('http://example.com/', '/a', '//b/cd'); // 'http://example.com/a/b/cd' |
URL クエリパラメータを複数付与したいケース
[OK] ? だけ
URL クエリパラメータの結合は、とりあえず ? を付けておけば大丈夫みたいです。
var urljoin = require('url-join'); urljoin('http://example.com', 'a', '?foo=123', '?bar=456'); // 'http://example.com/a?foo=123&bar=456' |
[NG] & だけ
さすがに & だけでやるとダメでした。ここまではケアしてくれないので ? 利用しましょう。
var urljoin = require('url-join'); urljoin('http://example.com', 'a', '&foo=123', '&bar=456'); // 'http://example.com/a&foo=123&bar=456' |
以上、細かいことは気にしないで URL パラメータを結合したい現場からお送りしました。