node.js で Web サーバーを作成する手順の詳細な説明

node.js で Web サーバーを作成する手順の詳細な説明

序文

node.js でサーバーを作成するのは非常に簡単です。小さいながらも完全な Web サーバーを作成するには、node.js が提供する http モジュールと関連 API を使用するだけです。Java/Python/Ruby で Web サーバーを構築するプロセスと比較すると、はるかに簡単です。

http モデル

Node.js ベースの Web サーバーを作成するには、Node.js が提供する http モジュールを使用する必要があります。Node.js の http インターフェイスは、従来は使い​​にくかったプロトコルの多くの機能をサポートするように設計されています。特に、ブロック エンコードされた可能性のある大きなメッセージの場合、インターフェイスはリクエストや応答全体をバッファリングすることはなく、ユーザーはデータをストリーミングできます。

あらゆる http アプリケーションをサポートするために、node.js の http API は非常に低レベルになっています。つまり、複雑な根本的な問題はすべて node.js によって解決され、モジュールと関連 API にカプセル化されて使用されます。開始するには、node.js の簡潔な構文に従うだけで済みます。

サーバーの作成

まず、http モジュールをインポートし、関連する API を通じていくつかの機能を実装する必要があります。以下は、小さいながらも完全に機能するノード Web サーバーです。

サーバーを作成する前に、これら 2 つの API を確認することをお勧めします。また、戻ってもう一度確認することもできます。

(1)新しく作成されたhttp.Serverインスタンスを返す

http.createServer([オプション][, リクエストリスナー])
  • オプション:<オブジェクト>
  • requestListener: <関数>
  • 戻り値: <http.Server>

(2)HTTPサーバーを起動して接続を待ち受ける

server.listen(ポート、コールバック)
  • ポート:<番号>
  • ポート番号コールバック: <Function> コールバック関数
  • 戻り値: なし

(3)画面上に文字列を印刷する(単純にチャンクを使用する)

response.write(チャンク[, エンコーディング][, コールバック])
  • チャンク:<文字列> | <バッファ>
  • エンコーディング:<文字列> デフォルト値: 'utf8'。
  • コールバック:<Function> コールバック
  • 戻り値: <ブール値>

こんにちは

// コアモジュールをインポート var http = require('http')

// サーバーを作成します (API はインスタンスを返します)
var サーバー = http.createServer()

// バインドポート番号 (3000)
server.listen(3000, () => {
  console.log(`サーバーが正常に起動しました。クライアントの要求を待機しています...`)
})

// クライアントからのリクエストをリッスンする server.on('request', (request, response) => {
  
  // クライアント要求パス console.log(`クライアント要求パスは: ${request.url}`)

  // クライアントに応答する switch(request.url){
    
    case '/':{//ブラウザのデフォルトの動作 response.write(`/`)
      壊す;
    }

    case '/index':{//ホームページ response.write(`/index`)
      壊す;
    }

    case '/loging':{//ログインページ response.write(`/loging`)
      壊す;
    }
    
  }

  // レスポンス完了 response.end()
  
})

hello.js Web サーバーの作成が完了したので、サーバーを起動します。

1. cmdターミナルを開き、hello.jsファイルディレクトリを見つけます(IDE組み込みターミナルでもOK)

ここに画像の説明を挿入

2. hello.jsを起動する

// コマンドノードhello.jsを起動する

ここに画像の説明を挿入

「サーバーが正常に起動しました...」というキーワードが表示された場合は起動が成功したことを示しているので、ブラウザを開いてテストの準備をします。

3. このURLのようにローカルIPアドレスを入力し、ポートは設定されているポートです。デフォルトは8000です。

ここに画像の説明を挿入

ここに画像の説明を挿入

テストリクエスト

ここに画像の説明を挿入

「/」を書かなくても、ブラウザはデフォルトでそれを追加することに注意してください。

ここに画像の説明を挿入

ここに画像の説明を挿入

これで、node.js を使用して Web サーバーを作成する詳細な手順に関するこの記事は終了です。node.js を使用して Web サーバーを作成する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Node.js Web アプリケーションを Docker コンテナにパッケージ化する方法
  • Node.jsは、データ転送操作例のWebSocketハンドシェイクをシミュレートするためにnetモジュールを使用します。
  • Node.js で SVG 画像を PNG、JPEG、TIFF、WEBP、HEIF 形式に変換する方法
  • no-vnc と node.js を使用して Web リモート デスクトップを実装するための完全な手順
  • node.js ws モジュールを使用して Websocket サーバーを構築する方法の例
  • node.jsのwsモジュールはサーバーとクライアント、WebページWebSocketクライアントを作成します
  • Node.js ネイティブ API を使用して Web サーバーを構築する方法
  • node.js開発フレームワークexpressを使用してWebアプリケーションを作成する方法の詳細な説明
  • NODE.JS を使用して WEBSERVER を作成する手順

<<:  スプレッド演算子のサンプルコードと JavaScript での応用

>>:  JavaScriptにおけるPromiseの使い方と注意点について(推奨)

推薦する

Dockerでプロジェクトを実行する方法

1. プロジェクトwarが保存されているディレクトリを入力しますDockerfileを編集する vi...

JDBCデータベースリンクと関連メソッドのカプセル化の詳細な説明

JDBCデータベースリンクと関連メソッドのカプセル化の詳細な説明MySQL データベースを使用して、...

Vueコンポーネント間の通信の非常に詳細な要約

目次序文1. Props、$emit一方向データフロー2. $親、$子3. $attrs、$list...

Innodb システムテーブルスペースのメンテナンス方法

環境説明:実行中の MySQL 環境があります。以前の構成ファイルの設定が単純すぎたため (inno...

JavaScript スタイル オブジェクトと CurrentStyle オブジェクトのケース スタディ

1. スタイルオブジェクトスタイル オブジェクトは単一のスタイル宣言を表し、スタイルが適用されている...

MySQL データベース テーブルのパーティション分割に関する考慮事項 [推奨]

テーブル パーティショニングは、データベース パーティショニングとは異なります。では、テーブル パー...

ova ファイルを VMware にインポートする際の落とし穴の概要

問題の原因ご存知のとおり、すべてのネットワーク動作は対応するネットワークトラフィックを生成し、すべて...

Linux 上で Docker コンテナを作成、一覧表示、削除する方法の概要

1. Dockerコンテナを起動する以下のコマンドを使用して新しい Docker コンテナを起動しま...

MySQL クラスター化インデックスのページ分割原理の分析例

この記事では、MySQL クラスター化インデックスのページ分割を例を使って説明します。ご参考までに、...

表に斜めヘッダー効果を出す5つの方法

誰もがテーブルをよく知っているはずです。コード内でよく見かけます。テーブルにスラッシュ ヘッダーを追...

バックエンド管理システムを構築するためのvue-element-adminの実装手順

最近、カンファレンスの健康申告システムに取り組んでいたとき、バックエンドを構築する必要があり、vue...

HTML に基づいてページを更新せずにフォーム送信を実装する

ページを更新せずにフォーム送信を実装するために Ajax を使用することは、プロジェクトでよく使用さ...

mysql のインデックスと FROM_UNIXTIME に関する問題

ゼロ、背景今週の木曜日にたくさんのアラートを受け取りました。DBA に確認を依頼したところ、遅いクエ...

VMware 15.5 バージョンのインストール Windows_Server_2008_R2 システム チュートリアル図

1. VMware 15.5から新しい仮想マシンを作成する1. VMware を開き、ホームページで...

Vue ミックスインの使用方法とオプションのマージの詳細な説明

目次1. コンポーネントでの使用2. オプションのマージ要約する1. コンポーネントでの使用Mixi...