Nodejs で http サーバーを構築する

王林
リリース: 2023-05-11 21:28:37
オリジナル
1325 人が閲覧しました

Node.js は、Chrome V8 エンジン上に構築された JavaScript ランタイム環境であり、Web アプリケーション開発で広く使用されています。 Node.js では、HTTP サーバーを簡単に構築し、ブラウザーを通じてサーバー上の Web ページにアクセスできます。この記事では、Node.jsを使用してHTTPサーバーを構築する方法を紹介します。

  1. Node.js のインストール

まず、Node.js 環境をローカルにインストールする必要があります。 Node.js 公式 Web サイト https://nodejs.org/ にアクセスして、最新バージョンをダウンロードしてインストールできます。インストールが完了したら、コマンド ラインに次のコマンドを入力して、インストールが成功したかどうかを確認できます。

node -v
ログイン後にコピー

Node.js のバージョン番号が正しく表示されれば、インストールは成功しています。

  1. HTTP サーバーの作成

Node.js を使用した HTTP サーバーの作成は非常に簡単です。 Node.js の組み込み「http」モジュールを JavaScript ファイルに導入し、サーバーを作成して、指定されたポートをリッスンするだけです。以下は簡単な例です:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World!
');
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});
ログイン後にコピー

上記のコードは HTTP サーバーを作成し、ポート 3000 をリッスンします。クライアントがサーバーにアクセスすると、文字列「Hello World!」を返します。

  1. HTTP サーバーへのアクセス

HTTP サーバーを起動したら、ブラウザを使用してサーバーにアクセスできます。ブラウザのアドレス バーに「http://localhost:3000」と入力すると (サーバーがローカルで実行されていない場合は、「localhost」をサーバーの IP アドレスに置き換えてください)、ブラウザに「Hello World!」という文字列が表示されるのがわかります。

  1. HTTP リクエストの処理

上記の例は最も単純な例にすぎません。実際、HTTP リクエストを処理するときは、リクエストヘッダーとリクエストボディを使用して、適切な応答を生成します。 Node.js の http モジュールは、リクエストを処理するための API を提供します。たとえば、要求された URL アドレスは req.url を通じて取得でき、要求されたメソッドは req.method を通じて取得できます。以下は、異なる URL アドレスに応じて異なるメッセージを返す例です。

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    if (req.url === '/about') {
        res.end('This is about page');
    } else if (req.url === '/contact') {
        res.end('This is contact page');
    } else {
        res.end('Hello World!
');
    }
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});
ログイン後にコピー

ブラウザで「http://localhost:3000/about」にアクセスすると、ブラウザに「これは about ページです」というメッセージが表示されます。 " 文字列; "http://localhost:3000/contact" にアクセスすると、ブラウザに表示される "これは連絡先ページです" 文字列; "http://localhost:3000" にアクセスすると、ブラウザに " こんにちは世界!」という文字列。

  1. POST リクエストの処理

GET リクエストの処理に加えて、POST リクエストを処理し、クライアントからサーバーに渡されたデータを保存することもできます。 Node.js の http モジュールは、POST リクエストを処理するための API も提供します。以下は簡単な POST リクエスト処理の例です:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
    if (req.method === 'POST') {
        let body = '';
        req.on('data', chunk => {
            body += chunk.toString();
        });
        req.on('end', () => {
            console.log(`Received data: ${body}`);
            res.end('Data received');
        });
    } else {
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/plain');
        res.end('Hello World!
');
    }
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});
ログイン後にコピー

HTTP リクエストを処理するとき、上記のコードはまずリクエスト メソッドが POST であるかどうかを判断し、POST である場合はデータ転送イベントを監視し、転送されたデータを保存します。 body.変数にデータを格納し、データ送信完了後に出力します。クライアント HTML ファイルでは、

要素を使用して POST リクエストを送信できます (例:

<!DOCTYPE html>
<html>
<head>
    <title>POST Request Example</title>
</head>
<body>
    <form action="http://localhost:3000" method="post">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name"><br><br>
        <label for="email">Email:</label>
        <input type="email" id="email" name="email"><br><br>
        <input type="submit" value="Submit">
    </form>
</body>
</html>
ログイン後にコピー

フォームに入力した後、[送信] ボタンをクリックすると、POST リクエストが送信されます) HTTP サーバーに接続され、データが送信されます。

概要

Node.js を使用した HTTP サーバーの構築は非常に簡単で、拡張性とカスタマイズ性に優れています。この記事では、HTTP サーバーの作成方法、HTTP リクエストの処理方法、および POST リクエストの処理方法について説明します。上記の知識を学ぶことで、独自の Web アプリケーションを迅速に構築し、効率的で信頼性の高い Web サービスを構築できます。

以上がNodejs で http サーバーを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!