等型JavaScript:ユニバーサルURL解析
この記事では、同型JavaScriptアプリケーションのコンテキスト内でのURL解析を調査します。 Isomorphic JavaScriptを使用すると、コードはクライアント(ブラウザ)とサーバー(node.js)の両方でシームレスに実行でき、アプリケーションの汎用性とパフォーマンスを向上させます。 これの重要な側面は、両方の環境で一貫したURL処理です。 重要な概念:
Location
node.jsは、効率的なURL操作のために専用のurl
正規表現
サーバー側のurl parsing(node.js):
モジュール:を提供します
メソッドは、すべてのURLコンポーネントを含むオブジェクトを返します。
クライアント側のurl解析:url
// Server-side JavaScript const url = require('url'); const parsedUrl = url.parse('http://site.com:81/path/page?a=1&b=2#hash'); console.log(parsedUrl.href); // Full URL console.log(parsedUrl.protocol); // http: console.log(parsedUrl.hostname); // site.com console.log(parsedUrl.port); // 81 console.log(parsedUrl.pathname); // /path/page console.log(parsedUrl.search); // ?a=1&b=2 console.log(parsedUrl.hash); // #hash
インターフェイス(parse()
)は同様の機能を提供します。
このアプローチは、複雑な正規表現を回避します 同型URL解析:
url
環境に依存しないライブラリを作成すると、同型URLの解析が簡素化されます。 以下のLocation
の例は、これを示しています:<a>
// Client-side JavaScript const url = document.createElement('a'); url.href = 'http://site.com:81/path/page?a=1&b=2#hash'; console.log(url.hostname); // site.com
)を使用して環境を決定し、適切な方法を使用します。 APIは、クライアントとサーバーの両方で一貫しています
同型ライブラリを使用:
lib.js
サーバー側:
// lib.js const isNode = typeof module !== 'undefined' && module.exports; (function(lib) { "use strict"; const urlModule = isNode ? require('url') : null; lib.URLparse = function(str) { if (isNode) { return urlModule.parse(str); } else { const url = document.createElement('a'); url.href = str; return url; } }; })(isNode ? module.exports : this.lib = {});
typeof module
を含め、を直接使用します。
const lib = require('./lib.js'); const parsedUrl = lib.URLparse(...);
完全な同型アプリケーションは挑戦的である可能性がありますが、環境に違いないライブラリのような環境に依存しないライブラリは、URLの解析を大幅に簡素化し、クライアント環境とサーバー環境全体で一貫したコードを可能にします。 このアプローチは、同型JavaScriptプロジェクトのコードの再利用性と保守性を促進します。
以上が同型JavaScriptでの簡単なURL解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。