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

推薦する

中国の専門ではない:文化の違いの中でのウェブ開発

Web デザインと開発は大変な作業なので、少数の人だけを対象に設計しないでください。これは外国人が...

ウェブフォーム送信方法の詳細な概要

まず、フォームを送信するいくつかの方法を見てみましょう。 1. <!--一般的な送信ボタン--...

フォームアクションとonSubmitの例

まず、action はフォームの属性です。HTML5 では必須の属性値として定義されています。onS...

Dockerfile を使用して Node.js サービスをデプロイする方法

Dockerfileを初期化するプロジェクトの名前が express であると仮定して、expres...

Linux 環境の Apache で https サービスを有効にする方法の詳細な説明

この記事では、Linux 環境の Apache で https サービスを有効にする方法について説明...

Linux オペレーティング システムの概要と紹介

目次1. オペレーティングシステムとは何か2. Linuxの起源3. Linuxの基本機能4. Li...

mysql エラー 1045 (28000) - ユーザーへのアクセスが拒否される問題を解決する方法

問題の説明 (以下の説明は Windows 環境に限定されます): D:\develop\ide\m...

Vue は Tencent Map を統合して API を実装します (デモ付き)

目次執筆の背景プロジェクトの説明事前準備注記執筆の背景以前のプロジェクトではTencent Maps...

JavaScriptカスタムオブジェクトメソッドの概要

目次1. オブジェクトを使用してオブジェクトを作成する2. コンストラクタを使用してオブジェクトを作...

MySQL データベースのパフォーマンス最適化の概要

目次なぜ最適化するのですか? ?どこから始めますか? ?解決策は何ですか? ? ?どうやって選ぶ? ...

Linux Crontab シェル スクリプトを使用して第 2 レベルのスケジュールされたタスクを実装する方法

1. シェルスクリプトcrontab.shを書く #!/bin/bash step=1 #ステップ間...

MySQL共通インデックスとユニークインデックスの選択に関する詳細な分析

各人が固有の携帯電話番号で登録し、ビジネス コードによって重複する携帯電話番号が 2 つ書き込まれな...

WeChatアプレットに2048ミニゲームを実装する詳細なプロセス

レンダリング サンプルコード今日は、WeChat アプレットを使用して 2048 ゲームを実装します...

高性能な HTML アプリケーションを作成するためのヒント

Web ページのパフォーマンスを向上させるにはどうすればよいでしょうか?ほとんどの開発者は、Java...

デザイナーはコーディングを学ぶ必要がありますか?

多くの場合、 Web デザインが完成した後でデザイナーの無知が露呈し、批判されることがあります。彼ら...