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 ロケーション優先度の詳細な説明

推薦する

Docker mongoDB 4.2.1 をインストールし、Springboot ログを収集する詳細な手順

1: dockerにmongodbをインストールするステップ1: dockerにmongodbをイン...

シンプルなアコーディオン効果を実現するjs

この記事では、アコーディオン効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な...

MySQL InnoDB 監視 (システム層、データベース層)

MySQL InnoDB 監視 (システム層、データベース層) MySQL の監視に関しては、My...

一般的な Nginx のテクニックと例の概要

1. 複数サーバーの優先順位たとえば、各サーバー ブロックがポート 80 をリッスンする場合、www...

MySQLの複合インデックス方式の詳細な説明

どの DBMS でも、インデックスは最適化にとって最も重要な要素です。データ量が少ない場合、適切なイ...

CSSアニメーションとSVGを組み合わせてエネルギーの流れの効果を作成する

最終的な効果は次のようになります。アニメーションは2つのステップに分かれていますランニング軌道を開発...

Dockerを使用してPythonランタイム環境の基本イメージを作成する方法

1. 準備1.1 Pythonインストールパッケージをダウンロードします(注:Pythonバージョン...

HTML の doctype とエンコーディングに関する簡単な説明

文書タイプDoctype は、指示を解析するためにどのバージョンの HTML を使用するかをブラウザ...

UrlRewriter のキャッシュ問題と関連する一連の調査

ウェブサイト機能を開発する場合、セッション キャッシュを時間内にクリアできません。一連の探索が始まり...

DockerがElasticsearch7.xを起動してエラーを報告する問題を解決する

Docker実行コマンドの使用docker run -d -p 9200:9200 -p 9300:...

削除、切り捨て、ドロップの違いと選択方法

序文先週、同僚が私に尋ねました。「兄さん、MySQL にバグを見つけました。午後にディスクをクリーン...

クラウドサーバーを購入し、Alibaba Cloud に Pagoda Panel をインストールする手順

アリババクラウドがサーバーを購入クラウドサーバーを購入し、サーバーバージョンとしてcentos 7....

Ubuntu 19にTheanoをインストールする際の問題を解決する

解決: pythearn2 パッケージをダウンロードしたディレクトリで、setup.py ファイルを...

ES6 の Set および WeakSet コレクションの詳細な説明

目次セットは値が重複しない特別なコレクションです。セットコレクション基本API独自の価値判断セットを...

非常に便利な CSS 開発ツール 8 つを紹介

CSS3 パターン ギャラリーこの CSS3 パターン ライブラリには、純粋な CSS3 を使用して...