ホームページ ウェブフロントエンド jsチュートリアル Node.js で Web サーバーと TCP サーバーを作成する方法

Node.js で Web サーバーと TCP サーバーを作成する方法

Jun 22, 2018 pm 04:33 PM
node.js TCPサーバー ウェブサーバー

この記事では、Node.js を使用して Web サーバーと TCP サーバーを作成する方法と処理スキルを主に紹介します。必要な読者はそれを学ぶことができます。

http モジュールを使用して Web サーバーを作成します

Web サーバーの機能:

HTTP リクエストを受け入れる (GET、POST、DELETE、PUT、PATCH)

HTTP リクエストを処理する (自分で処理するか、他のプログラムにリクエストを要求する)処理します)

応答 (ページ、ファイル、さまざまな種類のデータなどを返す)

一般的な Web サーバー アーキテクチャ:

Nginx、Apache: HTTP リクエストの受け入れ、リクエストを処理するユーザーの決定、および返信を担当します。リクエストの結果

php -fpm/php モジュール: 自身に割り当てられたリクエストを処理し、処理結果を割り当て者に返します

一般的なリクエストの種類:

リクエスト ファイル: 静的ファイル (Web ページ、写真、フロントエンド JavaScript ファイル、CSS ファイル... .)、プログラムによって処理されるファイル

特定の操作を完了する: ログイン、特定のデータの取得など

Node.js Web サーバー:

他の特定の Web サーバー ソフトウェア (Apache、Nginx、IIS など) に依存しない

Node.js コードがリクエスト ロジックを処理する

Node.js コードが Web サーバーのさまざまな「構成」を担当する

Express を使用するWebサーバーを作成するには

シンプルExpressサーバー

静的ファイルサービス

ルーティング

ミドルウェア

シンプルExpressサーバー:

var express = require('express'); 
var app = express(); 
app.get('', function(req, res){ 
<span style="white-space:pre"> </span>res.end(&#39;hello\n&#39;); 
<span style="white-space:pre"> </span>}); 
<span style="white-space:pre"> </span>app.listen(18001, function afterListen(){ 
<span style="white-space:pre"> </span>console.log(&#39;express running on http://localhost:18001&#39;); 
<span style="white-space:pre"> </span>});
ログイン後にコピー

静的ファイルスコープ:

Webページ、プレーンテキスト、画像、フロントエンドJavaScriptコード、CSS スタイル シート ファイル、メディア ファイル、フォント ファイル

Express を使用して静的ファイルにアクセスします

<span style="white-space:pre"></span>app.use(express.static(&#39;./public&#39;));
ログイン後にコピー

ルーティング:

対応する処理関数に異なるリクエストを割り当てます

区別: パス、リクエスト メソッド

3 つのルーティング実装メソッド:

パス: 比較的シンプル

ルーター: 比較同じルート下の複数のサブルートに適しています

ルート: APIに適しています

ミドルウェア

接続: Node.jsミドルウェアフレームワーク

階層化された処理

各層が実装関数

TCPサーバーを作成する

netモジュールを使用してTCPサーバーを作成します

telnetを使用してTCPサーバーに接続します

netを使用してTCPクライアントを作成します

node.jsを使用して簡単なWebを構築しますサーバー JS コード部分:

var http = require(&#39;http&#39;);
var url = require(&#39;url&#39;);
var path = require(&#39;path&#39;);
var fs = require(&#39;fs&#39;);
var dir, arg = process.argv[2] || &#39;&#39;; // 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称
// 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级
// 且你想以debug文件夹启动web服务
 
http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname;
dir = dir ? dir : pathname; // 记住dir(目录)
pathname = dir ? pathname.replace(dir, dir + arg + &#39;/&#39;) : pathname; // 替换文件静态路径
if (path.extname(pathname) == "") {
pathname += "/";
}
if (pathname.charAt(pathname.length - 1) == "/") {
pathname += "index.html"; // 入口文件,此处默认index.html
}
 
fs.exists(pathname, function (exists) {
if (exists) {
switch (path.extname(pathname)) {
case ".html":
res.writeHead(200, {"Content-Type": "text/html"});
break;
case ".js":
res.writeHead(200, {"Content-Type": "text/javascript"});
break;
case ".css":
res.writeHead(200, {"Content-Type": "text/css"});
break;
case ".gif":
res.writeHead(200, {"Content-Type": "image/gif"});
break;
case ".jpg":
res.writeHead(200, {"Content-Type": "image/jpeg"});
break;
case ".png":
res.writeHead(200, {"Content-Type": "image/png"});
break;
default:
res.writeHead(200, {"Content-Type": "application/octet-stream"});
} 
// res可以自己添加信息来简单交互 比如可以修改点header信息 或者修改返回的资源数据
fs.readFile(pathname, function (err, data) {
res.end(data);
});
}
else {
res.writeHead(404, {"Content-Type": "text/html"});
res.end("<h1>404 Not Found</h1>");
}
});
}).listen(8085, "127.0.0.5"); // 服务器端口
console.log("server running at http://127.0.0.5:8085/");
ログイン後にコピー

上記は私があなたのためにまとめたものです。将来的に皆さんのお役に立てれば幸いです。

関連記事:

laydate.jsのパスの読み込みエラー

vue-routerで渡すルートパラメータの実装方法

jQueryを使ってテーブルを操作してセル結合を実現する方法

以上がNode.js で Web サーバーと TCP サーバーを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Nodeのメモリ制御に関する記事 Nodeのメモリ制御に関する記事 Apr 26, 2023 pm 05:37 PM

ノンブロッキングおよびイベント駆動に基づいて構築されたノード サービスには、メモリ消費量が少ないという利点があり、大量のネットワーク リクエストの処理に非常に適しています。大量のリクエストを前提として、「メモリ制御」に関する問題を考慮する必要があります。 1. V8 のガベージ コレクション メカニズムとメモリ制限 Js はガベージ コレクション マシンによって制御されます

CentOS上に構築されたWebサーバーのセキュリティ監査とイベントログ管理 CentOS上に構築されたWebサーバーのセキュリティ監査とイベントログ管理 Aug 05, 2023 pm 02:33 PM

CentOS で構築された Web サーバーのセキュリティ監査とイベント ログ管理の概要 インターネットの発展に伴い、Web サーバーのセキュリティ監査とイベント ログ管理の重要性が増しています。 CentOS オペレーティング システムで Web サーバーをセットアップした後は、サーバーのセキュリティに注意を払い、悪意のある攻撃からサーバーを保護する必要があります。この記事では、セキュリティ監査とイベント ログ管理を実行する方法を紹介し、関連するコード例を示します。セキュリティ監査 セキュリティ監査とは、サーバーのセキュリティ状態を包括的に監視および検査し、潜在的な問題を迅速に発見することを指します。

Node の File モジュールについて詳しく説明しましょう Node の File モジュールについて詳しく説明しましょう Apr 24, 2023 pm 05:49 PM

ファイル モジュールは、ファイルの読み取り/書き込み/開く/閉じる/削除の追加など、基礎となるファイル操作をカプセル化したものです。ファイル モジュールの最大の特徴は、すべてのメソッドが **同期** と ** の 2 つのバージョンを提供することです。 asynchronous**、sync サフィックスが付いているメソッドはすべて同期メソッドであり、持たないメソッドはすべて異種メソッドです。

ベスト プラクティス: CentOS で Web サーバーを構築するためのパフォーマンス チューニング ガイド ベスト プラクティス: CentOS で Web サーバーを構築するためのパフォーマンス チューニング ガイド Aug 04, 2023 pm 12:17 PM

ベスト プラクティス: CentOS で Web サーバーを構築するためのパフォーマンス チューニング ガイド 概要: この記事は、CentOS で Web サーバーを構築するユーザーにパフォーマンス チューニングのベスト プラクティスを提供し、サーバーのパフォーマンスと応答速度を向上させることを目的としています。いくつかの主要な調整パラメータと一般的に使用される最適化手法が紹介され、読者がこれらの手法をよりよく理解し、適用できるようにいくつかのサンプル コードが提供されます。 1. 不要なサービスを停止する CentOS 上で Web サーバーを構築すると、デフォルトで不要なサービスが起動され、システムリソースを占有します。

CentOS で Web サーバーを構築する前に注意する必要がある権限とアクセス制御戦略 CentOS で Web サーバーを構築する前に注意する必要がある権限とアクセス制御戦略 Aug 05, 2023 am 11:13 AM

CentOS で Web サーバーを構築する前に注意すべき権限とアクセス制御戦略 Web サーバーを構築するプロセスでは、権限とアクセス制御戦略が非常に重要です。権限とアクセス制御ポリシーを正しく設定すると、サーバーのセキュリティを保護し、権限のないユーザーによる機密データへのアクセスやサーバーの不適切な操作を防ぐことができます。この記事では、CentOS システムで Web サーバーを構築するときに注意する必要がある権限とアクセス制御戦略を紹介し、対応するコード例を示します。ユーザーとグループの管理 まず、専用の

ノードのバッファーについて詳しく見る ノードのバッファーについて詳しく見る Apr 25, 2023 pm 07:49 PM

当初、JS はブラウザ側でのみ動作していたため、Unicode でエンコードされた文字列の処理は簡単でしたが、バイナリ文字列や非 Unicode エンコード文字列の処理は困難でした。バイナリは、コンピュータのビデオ/オーディオ/プログラム/ネットワーク パッケージの最低レベルのデータ形式です。

Go で Web サーバーを作成するためのベスト プラクティス Go で Web サーバーを作成するためのベスト プラクティス Jun 18, 2023 pm 07:38 PM

Go 言語は、特にネットワーク プログラミングで人気の開発言語となっています。 Go で Web サーバーを作成する場合、サーバーのセキュリティ、保守性、拡張性を確保するためのベスト プラクティスが数多くあります。ここでは、Go Web サーバーの効率と信頼性を向上させるのに役立ついくつかの提案と実践を示します。標準ライブラリの使用 Go 言語の標準ライブラリには、ネットワーク プログラミングに関連するパッケージが多数あります。たとえば、net/http パッケージは HTTP サーバーの作成に役立ち、net パッケージは低レベルのネットワーク接続の処理に役立ちます。

入門チュートリアル: CentOS で Web サーバーをセットアップするためのクイック ガイド 入門チュートリアル: CentOS で Web サーバーをセットアップするためのクイック ガイド Aug 04, 2023 pm 06:04 PM

入門レベルのチュートリアル: CentOS で Web サーバーを構築するためのクイック ガイド はじめに: 今日のインターネット時代では、独自の Web サーバーを構築することが多くの人々にとって必要になっています。この記事では、CentOS オペレーティング システム上に Web サーバーを構築する方法を紹介し、読者がそれをすぐに実装できるようにコード例を示します。ステップ 1: Apache のインストールと構成 ターミナルを開き、次のコマンドを使用して Apache サーバーをインストールします: sudoyuminstallhttpd インストールが完了したら、Apac を起動します。

See all articles