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の使い方と注意点について(推奨)

推薦する

CSS3は、ズームと回転を実現するためにscale()とrotate()を使用します。

1. scale() メソッドズームとは「縮小」と「拡大」を意味します。 CSS3 では、scal...

CSS で放射状グラデーションを使用してカード効果を実現する

数日前、同僚がポイントモールプロジェクトを受け取りました。このプロジェクトには、カードやクーポンをギ...

MySql ファジークエリ JSON キーワード取得ソリューションの例

目次序文オプション1:オプション2:オプション3:オプション4(最終的に採用されたオプション):要約...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

タグが新しいページを開くかどうかという問題。主要ウェブサイトの開設状況をまとめました

a タグが新しいページを開くかどうか: (1)百度百科事典:ヘッダーが異なる場合は新しいページが開き...

CSS ファンタスティックボーダーアニメーション効果の実装

今日、私はブログサイト shoptalkshow を閲覧していて、非常に興味深いこのインターフェース...

純粋な CSS3 で蝶が羽ばたく様子を再現する例

純粋なCSS3で蝶が羽ばたく様子を再現。まずはその効果をご覧ください どうですか?効果はかなりいいで...

MySQL の replace と replace into の詳細な例 into_Mysql

MySQL の replace と replace into はどちらも頻繁に使用される関数です。...

vue で h5 側のアプリを開きます (Android か Apple かを判断します)

1. 開発環境 vue+vant 2. コンピュータシステム Windows 10 Profess...

SQL インジェクションのある Web サイトを見つける方法 (必読)

方法 1: Google の詳細検索を使用します。たとえば、次に示すように.asp?id=9などの ...

Keras を使って SQL インジェクション攻撃を判断する (例の説明)

この記事では、ディープラーニングフレームワーク keras を使用して、SQL インジェクションの特...

Vite2.0の落とし穴

目次Viteプロジェクトビルドの最適化他のやっとこれは前回の記事の補足です。設定プロジェクトで遭遇し...

PIP で docker-compose をインストールする際のタイムアウト問題の解決方法

1: インストールコマンドpip install docker-compose例外情報socket....

Vue2.xは、ユーザーのログインと終了を実装するためにルーティングナビゲーションガードを設定します。

目次序文1. ルーティングナビゲーションガードを設定する1. グローバルナビゲーションガード2. ロ...

Nginxはリバースプロキシを使用して負荷分散プロセス分析を実装します

導入dockerコンテナとdocker-composeに基づいて、Linux環境でのdockerの基...