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

推薦する

Dockerfile の一般的なコマンドの概要

構文の構成: 1 注釈情報2 コマンド --- パラメータ [通常は大文字 | 実際には大文字と小文...

Windows 10 での MySQL 8.0.22 のインストールと設定方法のグラフィック チュートリアル

MySQL 8.0.22のインストールと設定方法のグラフィックチュートリアル、参考までに、具体的な内...

js キャンバスはスライダー検証を実現します

この記事の例では、スライダー検証を実装するためのjsキャンバスの具体的なコードを参考までに共有してい...

セマンティック HTML 構造の利点は何ですか?

1つ: 1.セマンティック タグは単なる HTML であり、CSS にはセマンティクスはありません...

超大型フォントを使用した 40 の Web ページ デザイン

今日の Web デザインでは、非常に大きなフォントが表示される傾向があります。これらのオープンソース...

TypeScript 2.0 マーク付き共用体型の詳細な説明

目次タグ付きユニオン型を使用した支払い方法の構築タグ付きユニオン型を使用した Redux アクション...

CentOS7 64でのMySQL5.6.40の詳細なインストール手順

CentOS7 64でのMySQL5.6.40のインストール手順1) 以前にインストールしたMySQ...

WebデザイナーがRetinaディスプレイデバイス向けの画像を作成する方法

特記事項:この記事は、Chris Spooner の英語記事「Web デザイン用の Retina グ...

Alibaba Cloud イメージリポジトリを使用して外部 Docker イメージを構築する方法の詳細な説明

Alibaba Cloud Image Repositoryを使用して外部イメージをダウンロードする...

Navicateを使用してAlibaba Cloud Server上のMySQLに接続する

1. まず、サーバーの mysql にアクセスして権限を変更します。 GRANT オプション付きで、...

CSSプロパティに基づいたボタンホバーボーダーと背景アニメーションのコレクション

ハートの属性不透明度: .999 は要素のスタッキングコンテキストを作成し、ボタン6と8のアニメーシ...

MySQLクエリステートメント内のユーザー変数のコード分析

前回の記事では、MySQL 最適化の概要 - クエリの合計数を紹介しました。この記事では、クエリ ス...

Ubuntu で VIM を C++ 開発エディタとして設定する

1. 設定ファイルをユーザー環境にコピーし、新しい.vimフォルダを作成し、バンドルサブフォルダを作...

MySQL の DOS ウィンドウの文字化け問題を解決する方法

文字化けしたコードの問題は次のとおりです。 この問題の原因は非常に単純です。コマンドラインのエンコー...

フォアマン Ubuntu16 クイックインストール

クイックスタートガイドForeman インストーラーは、完全に機能する Foreman セットアップ...