Node.jsをゼロから学ぶ

Node.jsをゼロから学ぶ

URL モジュール

1.解析メソッド

//テスト02.js
'http' から http をインポートします
'url' から url をインポートします
const parseUrl = url.parse('https://www.baidu.com/news?name=朱葛亮&age=18#helloworld')
コンソールログ(parseUrl)
http.createServer((req, res) => {
    res.writeHead(200, {'コンテンツタイプ': 'text/html; charset=utf-8'})
    res.write('こんにちは、こんにちは世界!')
    res.end()
}).listen(3000)
console.log('私のサーバーはhttp://localhost:3000で実行されています')

URL アドレスを解析し、プロトコル、ドメイン名、パス、ポート、クエリ パラメータ、ハッシュなどの情報を含む解析された URL 詳細オブジェクトを取得します。

2 番目のパラメータはブール値で、デフォルトは false です。true が渡されると、クエリはオブジェクトに変換されます。

const parseUrl = url.parse('https://www.baidu.com/news?name=朱葛亮&age=18#helloworld', true)
コンソールログ(parseUrl)

2. フォーマット方法

URL 情報オブジェクト (つまり、解析メソッドによって返されるオブジェクト) を渡し、特定のパスを返します。このメソッドは、解析メソッドの逆の適用です。

const formatUrl = url.format({
    プロトコル: 'https:',
    スラッシュ: true、
    認証: null、
    ホスト: 'www.baidu.com',
    ポート: null、
    ホスト名: 'www.baidu.com',
    ハッシュ: '#helloworld',
    検索: '?name=諸葛亮&age=18',
    クエリ: 'name=Zhuge Liang&age=18',
    パス名: '/news',
    パス: '/news?name=諸葛亮&age=18',
    href: 'https://www.baidu.com/news?name=朱葛亮&age=18#helloworld'
})
console.log(formatUrl) // 出力 https://www.baidu.com/news?name=朱葛亮&age=18#helloworld

3. 解決方法

セカンダリパスの結合または置換

const result1 = url.resolve('https://www.baidu.com', 'ニュース')
const result2 = url.resolve('https://www.baidu.com/home', '')
const result3 = url.resolve('https://www.baidu.com/home', 'about')
const result4 = url.resolve('https://www.baidu.com/home/index', 'about')
const result5 = url.resolve('https://www.baidu.com/home/index?name=朱葛亮', 'about/hello')
コンソール.log(結果1)
コンソール.log(結果2)
コンソール.log(結果3)
コンソール.log(結果4)
コンソール.log(結果5)

出力:

イベントモジュール(イベント駆動型)

1. イベントモジュールの紹介

2. eventEmitterインスタンスを作成する

3. eventEmitterのonメソッドとemitメソッドを使用して、vueの$onと$emitに似たイベント駆動型、つまりパブリッシュサブスクライブモードを実装します。

非同期要件は次のように解決できます。

'fs' から fs をインポートします
'events' からイベントをインポートする

const eventEmitter = 新しいevent.EventEmitter()

eventEmitter.on('イベント', データ => {
    console.log('データを受信しました', data.toString())
})

fs.readFile('static/index.html', (err, data) => {
    eventEmitter.emit('イベント', データ)
})

パスモジュール

'path' からパスをインポートする
// サフィックス名を取得します const extName = path.extname('index.html') // .html

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Node.jsをゼロから学ぶシリーズチュートリアル: HTTPヘッダーメソッドの設定例
  • Node.jsをゼロから学ぶチュートリアルシリーズSQLite3とMongoDBの使用状況分析
  • Node.js をゼロから学ぶシリーズ チュートリアル 6: EventEmitter がイベントを送受信する例
  • ゼロから学ぶNode.jsシリーズ5: サーバー監視方法の例
  • Node.js をゼロから学ぶシリーズ 4: 複数のページで数学演算を実装するクライアント側とサーバー側の例
  • Node.js をゼロから学ぶシリーズチュートリアル: connect および express フレームワークに基づく複数ページの数学演算の例
  • ゼロから学ぶNode.jsシリーズ4: 複数ページに実装された数学演算の例

<<:  MySQLにおけるrow_numberの実装プロセス

>>:  nginx ロケーション優先度の詳細な説明

推薦する

MySQL 5.7.21 のインストールとパスワード設定のチュートリアル

MySQL5.7.21のインストールとパスワード設定のチュートリアルは次のとおりです。公式リファレン...

Vue を使用して CSS トランジションとアニメーションを実装する方法

目次1. トランジションとアニメーションの違い2. Vueを使用して基本的なCSSトランジションとア...

docker ベースの redis-sentinel クラスターの構築例

1. 概要Redis Cluster は、Redis ノードのグループ間での高可用性とシャーディング...

MySQLの自動増分主キーの実装の詳細な説明

目次1. 自己増分値はどこに保存されますか? 2. 自己価値修正メカニズム3. 自動増分値を変更する...

MYSQL ログとバックアップおよび復元の問題の詳細な説明

この記事では、参考までにMYSQLログとバックアップとリストアについて紹介します。具体的な内容は以下...

フレックスとポジションの互換性の詳細な説明マイニングノート

今日は、すべてのブラウザ (主に IE 9 以上と Chrome) と互換性のある自分のホームページ...

バッチモードでtopコマンドを実行する方法

top コマンドは、Linux システムのパフォーマンスを監視するために誰もが使用している最適なコマ...

1 つの記事で MySQL のプリコンパイルを理解する

1. プリコンパイルの利点私たちは皆、プリコンパイル機能を備えた JDBC の PreparedSt...

Linux のスケジュールされたタスクの crontab のインストールと使用の詳細な説明

crontabをインストールするyum install crontabs CentOS 7が付属して...

Windows 上で Nginx+Tomcat クラスタを実装するプロセスの分析

導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...

MySQL で期限切れのデータレコードを定期的に削除する簡単な方法

1. MySQL に接続してログインしたら、まず MySQL でイベント機能が有効になっているかどう...

HTML テーブルの行間隔を変更する方法の例

HTML テーブルを使用する場合、行間隔を変更する必要がある場合がありますが、余白、パディング、折り...

JavaScript 手ぶれ補正のケーススタディ

原理手ぶれ補正の原理は、イベントをトリガーすることはできますが、イベントがトリガーされてから n 秒...

MySQLインデックスを追加する3つの原則を簡単に理解する

1. インデックスの重要性インデックスは、列に特定の値を持つ行をすばやく見つけるために使用されます。...

VMware 仮想マシンに Android x86 をインストールする方法

アプリをテストしたいが、それを携帯電話で実行したくない場合があります。この場合、仮想マシンを使用して...