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インタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

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

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます
