簡単にnodejsサーバーを作成(7):ブロック化operations_node.jsの実装
ブロック操作とは何かを見てみましょう
sleep() メソッドをシミュレートして、hello star の印刷を 10 秒間遅らせます。
requestHandlers.js
関数 start() {
console.log("リクエストハンドラー「start」が呼び出されました。");
function sleep(milliSeconds) {
var startTime = new Date().getTime();
while (new Date().getTime() < startTime ミリ秒);
}
sleep(10000);
"Hello Start" を返します;
}
関数アップロード() {
console.log("リクエストハンドラー「アップロード」が呼び出されました。");
"こんにちはアップロード" を返します;
}
exports.start = 開始;
exports.upload = アップロード;
/start をリクエストすると、印刷までに 10 秒の遅延が発生します。
リクエスト/アップロード時には影響を受けません。
実験してみましょう:
最初のブラウザ ウィンドウのアドレス バーに http://localhost:8888/start と入力します。ただし、まだ開かないでください。
2 番目のブラウザ ウィンドウのアドレス バーに「http://localhost:8888/upload」と入力します。まだ開かないでください。
最初のウィンドウ (「/start」) で Enter キーを押し、すぐに 2 番目のウィンドウ (「/upload」) に切り替えて Enter キーを押します。
注意、何が起こったのか:
/start URL の読み込みには 10 秒かかりましたが、これは予想どおりでした。
/upload URL も 10 秒かかりました。
はい、対応するリクエスト ハンドラーには sleep() と同様の操作がありません。何が問題ですか?
その理由は、start() にブロック操作が含まれていることです。比喩的に言えば、「他のすべての処理作業がブロックされる」ということです。
Node.js はシングルスレッドであり、スレッドを追加せずにタスクを並列処理できます。
イベント ループを介して並列操作が実装されています。これを最大限に活用する必要があります。ブロック操作はできるだけ避け、代わりに非ブロック操作を使用してください。
次のセクションでは、ノンブロッキング操作を実装する方法を紹介します。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Node.js と Tomcat の主な違いは次のとおりです。 ランタイム: Node.js は JavaScript ランタイムに基づいていますが、Tomcat は Java サーブレット コンテナです。 I/O モデル: Node.js は非同期ノンブロッキング モデルを使用しますが、Tomcat は同期ブロッキング モデルです。同時実行処理: Node.js はイベント ループを通じて同時実行を処理しますが、Tomcat はスレッド プールを使用します。アプリケーション シナリオ: Node.js はリアルタイム、データ集約型、同時実行性の高いアプリケーションに適しており、Tomcat は従来の Java Web アプリケーションに適しています。

Node.js はサーバー側の JavaScript ランタイムであり、Vue.js は対話型ユーザー インターフェイスを作成するためのクライアント側の JavaScript フレームワークです。 Node.js はバックエンド サービス API 開発やデータ処理などのサーバー側開発に使用され、Vue.js はシングルページ アプリケーションや応答性の高いユーザー インターフェイスなどのクライアント側開発に使用されます。

Node.js は、高いパフォーマンス、スケーラビリティ、クロスプラットフォーム サポート、豊富なエコシステム、開発の容易さなどの機能を備えているため、バックエンド フレームワークとして使用できます。

Node.js インストール ディレクトリには、npm と npm.cmd という 2 つの npm 関連ファイルがあります。違いは次のとおりです。拡張子が異なります。npm は実行可能ファイルで、npm.cmd はコマンド ウィンドウのショートカットです。 Windows ユーザー: npm.cmd はコマンド プロンプトから使用できますが、npm はコマンド ラインからのみ実行できます。互換性: npm.cmd は Windows システムに固有ですが、npm はクロスプラットフォームで使用できます。使用上の推奨事項: Windows ユーザーは npm.cmd を使用し、他のオペレーティング システムは npm を使用します。

はい、Node.js はバックエンド開発言語です。これは、サーバー側のビジネス ロジックの処理、データベース接続の管理、API の提供などのバックエンド開発に使用されます。

Node.js には次のグローバル変数が存在します。 グローバル オブジェクト: グローバル コア モジュール: プロセス、コンソール、require ランタイム環境変数: __dirname、__filename、__line、__column 定数: unknown、null、NaN、Infinity、-Infinity

Node.js と Java の主な違いは、設計と機能です。 イベント駆動型とスレッド駆動型: Node.js はイベント駆動型で、Java はスレッド駆動型です。シングルスレッドとマルチスレッド: Node.js はシングルスレッドのイベント ループを使用し、Java はマルチスレッド アーキテクチャを使用します。ランタイム環境: Node.js は V8 JavaScript エンジン上で実行され、Java は JVM 上で実行されます。構文: Node.js は JavaScript 構文を使用し、Java は Java 構文を使用します。目的: Node.js は I/O 集中型のタスクに適しており、Java は大規模なエンタープライズ アプリケーションに適しています。

Node.js プロジェクトのサーバー デプロイメント手順: デプロイメント環境を準備します。サーバー アクセスの取得、Node.js のインストール、Git リポジトリのセットアップ。アプリケーションをビルドする: npm run build を使用して、デプロイ可能なコードと依存関係を生成します。コードをサーバーにアップロードします: Git またはファイル転送プロトコル経由。依存関係をインストールする: サーバーに SSH で接続し、npm install を使用してアプリケーションの依存関係をインストールします。アプリケーションを開始します。node Index.js などのコマンドを使用してアプリケーションを開始するか、pm2 などのプロセス マネージャーを使用します。リバース プロキシの構成 (オプション): Nginx や Apache などのリバース プロキシを使用して、トラフィックをアプリケーションにルーティングします。
