node.jsを使用したサーバー側JavaScriptの学習
node.js:高性能のリアルタイムWebアプリケーションを構築するための最新のフレームワーク
node.jsは、現代のWeb開発における重要なフレームワークです。 node.jsを使用すると、JavaScriptをサーバー側とクライアント側の両方でエンドツーエンドを使用できます。このチュートリアルでは、node.jsのインストールを説明し、最初の「Hello World」プログラムを作成する方法を示します。最終的に、node.jsとExpressを使用してWeather APIを構築する方法を学びます。
node.jsとは何ですか?
従来、JavaScriptはWebブラウザーでのみ実行できますが、node.jsは、サーバー側にそれを持ち込むことに関心が高まっているためになりました。
node.jsは、スレッドではなくイベントに基づいているため、他のサーバーテクノロジーとはわずかに異なります。 PHPやその他のCGIスクリプトの提供に使用されるApacheなどのWebサーバーは、着信要求ごとにシステムスレッドを生成するため、スレッドベースです。多くのアプリケーションではこれで十分ですが、多くの長期的な接続(たとえば、インスタントメッセージングアプリケーションなどのリアルタイムアプリケーションの提供に必要な接続)を処理する場合、スレッドベースのモデルはスケーラブルではありません。
「node.jsのすべてのI/O操作は非同期です...」
node.jsは、スレッドの代わりにイベントループを使用し、数百万の同時接続にスケーリングすることができます。これらの操作はメモリ操作よりもはるかに遅いため、サーバーがI/O操作を待機する時間のほとんどを使用します(たとえば、ハードディスクからファイルを読み取り、外部Webサービスにアクセスする、またはファイルのアップロードが完了するのを待つことを利用しています。 Node.jsの各I/O操作は非同期です。つまり、I/O操作が進行中にサーバーが着信要求を処理し続けることができます。 JavaScriptは、匿名の機能と閉鎖を備えているため、イベントベースのプログラミングに最適です。これにより、インラインコールバックの定義が簡単になり、JavaScriptの開発者はこの方法でプログラムする方法をすでに知っています。このイベントベースのモデルは、node.jsを非常に高速にし、リアルタイムアプリケーションのスケーリングを非常に簡単にします。
インストール
Node.jsは、Linux、MacOS、Microsoft Windows、Smartos、FreeBSDを正式にサポートしています。 node.jsの最新バージョンをWindows(V16以降)にインストールするには、コンピューターがWindows 8.1、10、または11を実行している必要があります。
Node.jsには、NODEパッケージマネージャー(略してNPM)と呼ばれる独自のパッケージマネージャーが組み込まれています。これにより、NPMレジストリからサードパーティモジュールをインストールできます。
- nodejs.orgからnode.jsの最新バージョンをダウンロードします(最新バージョンは執筆時点で17.9.0で、最新のLTSバージョンは16.14.2です)。これにより、コンピューターに.msiファイルをダウンロードする必要があります。
- ファイルを実行して、インストールウィザードを完了します。ほとんどのオプションはオプションです。正当な理由がない限り、プログラムパスを変更する必要はありません。チョコレート(Windowsパッケージマネージャー)をインストールするか、この手順をスキップすることを選択できます。
- インストール後、ウィザードが完了し、node.jsが正常にインストールされ、端末を開き、
npm -v
を実行してNPMバージョンを表示します。
また、プログラムでノードを検索する場合は、node.jsコマンドプロンプトを見つける必要があります。
コマンドプロンプトは、javaScript node.jsコードを入力してコードをすぐに評価し、結果を出力できるREPL(Read-Evaluation-Printループ)を提供します。 JavaScriptを外部ファイルからREPLセッションなどにロードすることもできます。
「こんにちは世界」
新しいテクノロジーの学習は、「Hello World!」から始まるので、そのメッセージを提供する簡単なHTTPサーバーを作成します。
まず、新しいnode.jsプロジェクトを作成します。これを行うには、ターミナルを開き、プロジェクトを配置するディレクトリに切り替えて、次のコマンドを実行します。
npm init
ライブラリ名、著者、エントリファイル、ライセンス、バージョンなど、ライブラリに関する情報を提供するように求められます。この手順をスキップするには、以下に示すようにrequire
関数を添付します(内部test.js ):
var util = require( "util");
これにより、出力をターミナルに印刷するなどのシステムレベルのタスクを処理するためのユーティリティ関数が含まれるutil
モジュールがロードされます。モジュールで関数を使用するには、モジュールを保存する変数に呼び出します。この場合、ファイル名をパラメーターとして使用してノードコマンドを使用します。
node test.js
このコマンドを実行すると、コマンドラインに「Hello World!」が出力されます。
HTTPサーバーを作成するには、 http
モジュールを使用する必要があります。
var util = require( "util"); var http = require( "http"); http.createserver(function(req、res){ res.writehead(200、{'content-type': 'text/html'}); res.write( 'hello world!'); res.end(); })。聞きます(8080); util.log( "https:// localhost:8080/"で実行されているサーバー);
このスクリプトは、 http
モジュールをインポートし、HTTPサーバーを作成します。 http.createServer()
に渡された匿名関数は、リクエストを受信すると実行されます。ブラウザにhttp://localhost:8080/
にアクセスすると、 Hello Worldが表示されます! 。
3.単純な静的ファイルサーバー
OK、HTTPサーバーを構築しましたが、どのURLにアクセスしても、「Hello World」以外は何も送信されません。 HTTPサーバーは、HTMLファイル、画像、その他のファイルなどの静的ファイルを送信できる必要があります。これは、次のコードがどのように行うかです。
var util = require( "util")、 http = require( "http")、 url = require( "url")、 パス= require( "path")、 fs = require( "fs"); http.createserver(function(request、response){ var uri = path.parse(request.url).base; var filename = path.join(process.cwd()、uri); fs.Access(filename、fs.constants.f_ok、function(err){ if(err){ Response.writehead(404、{"content-type": "text/plain"}); Response.write( "404 not not found \ n"); Response.End(); 戻る; } fs.readfile(filename、 "binary"、function(err、file){ if(err){ Response.writehead(500、{"content-type": "text/plain"}); respons.write(err "\ n"); Response.End(); 戻る; } Response.Writehead(200); Response.write(file、 "binary"); Response.End(); }); }); })。聞きます(8080); util.log( "http:// localhost:8080/"で実行されているサーバー);
まず、コード内のすべてのモジュールを使用する必要があります。これには、要求された受信URLを解析し、アクセスしたファイルのパス名を見つけるhttp
、 path
、およびurl
モジュールが含まれます。 process.cwd()
(または現在の作業ディレクトリ)と要求されたファイルへのパスを使用して、サーバーのハードドライブで実際のファイル名を見つけます。
次に、非同期操作であるファイルが存在するかどうかを確認するため、コールバック関数が必要です。ファイルが存在しない場合、404が見つかっていないメッセージがユーザーに送信され、関数が返されます。それ以外の場合は、 fs.readFile()
を使用してファイルを読み取ります。ブラウザでhttp://localhost:8080/path/to/file
アクセスすると、ファイルがブラウザに表示されます。
4. Expressを使用してNode.jsでWeather APIを構築します
静的ファイルサーバーに基づいて、特定の都市の予想される気象条件を取得および表示するnode.jsサーバーを構築します。まず、この例では、 axios
モジュールとexpress
モジュールの2つの追加のサードパーティモジュールが必要です。 Expressは、node.jsアプリケーションにRESTFUL APIを構築するためのWebフレームワークです。 Expressモジュールを使用して、各リクエストから都市を取得し、都市の予測気象条件を含むHTMLボディで対応する単一のAPIエンドポイントを構築します。天気情報は外部APIからのものです。したがって、 axios
クライアントを使用してAPIリクエストを行います。
まず、次のコマンドを同時に使用してexpress
およびaxios
モジュールをインストールします。
npm私は軸を発現します
これにより、NPMレジストリから両方のモジュールがインストールされます。 app.get()
コードを次のコードに置き換えます。
app.get( '/'、(req、res)=> { city = req.query.city; axios.get( `https://api.openweathermap.org/data/2.5/forecast?q=$ {city}&appid = $ {apikey}`) .then((respons)=> { if(respons.status === 200){ res.send(「あなたの街の天気」$ {city}」は<br> $ {respons.data.list [0] .weather [0] .description} `) } }) .catch((err)=> { console.log(err); }) })
まず、 query
プロパティからクエリ文字列(都市)を取得します。
次に、 axios
を使用して、天気予報APIにGETリクエストを発行します。 URLには2つの変数が必要です。予測された都市と、Open Weather API Information Centerで提供されるユニークなAPIキーを取得したいと考えています。
res.send()
メソッドを設定します。エラーが発生した場合、コマンドラインでnode test.js
を実行し、次のURLをブラウザに入力するだけで、エラーデータをコンソールにログに記録できます。
<code>http://localhost:3000/?city=nairobi</code>
ナイロビはお好みの都市に置き換えることができることに注意してください。これがあなたが得るべき結果を紹介します。
次のステップ
node.jsは、高性能リアルタイムアプリケーションの作成を簡素化する非常にエキサイティングなテクノロジーです。あなたがそれの利点を見て、あなた自身のアプリケーションのいくつかでそれを使用できることを願っています。 node.jsには強力なモジュールシステムがあるため、アプリケーションでオープンソースのサードパーティライブラリを使いやすく、データベース接続レイヤー、テンプレートエンジン、メールクライアント、さらにはこのコンテンツをすべて接続するための完全なフレームワークなど、ほとんどすべてのモジュールが利用可能です。
幸せなnode.jsプログラミングをお祈りします!
この記事は更新されており、キングスリー・ウバからの貢献が含まれています。キングスレーは、読者を教育し、刺激するコンテンツを作成することに情熱を傾けています。趣味には、読書、サッカー、サイクリングが含まれます。
以上がnode.jsを使用したサーバー側JavaScriptの学習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...
