検索
ホームページウェブフロントエンドjsチュートリアル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を非常に高速にし、リアルタイムアプリケーションのスケーリングを非常に簡単にします。

  1. インストール

Node.jsは、Linux、MacOS、Microsoft Windows、Smartos、FreeBSDを正式にサポートしています。 node.jsの最新バージョンをWindows(V16以降)にインストールするには、コンピューターがWindows 8.1、10、または11を実行している必要があります。

Node.jsには、NODEパッケージマネージャー(略してNPM)と呼ばれる独自のパッケージマネージャーが組み込まれています。これにより、NPMレジストリからサードパーティモジュールをインストールできます。

  1. nodejs.orgからnode.jsの最新バージョンをダウンロードします(最新バージョンは執筆時点で17.9.0で、最新のLTSバージョンは16.14.2です)。これにより、コンピューターに.msiファイルをダウンロードする必要があります。
  2. ファイルを実行して、インストールウィザードを完了します。ほとんどのオプションはオプションです。正当な理由がない限り、プログラムパスを変更する必要はありません。チョコレート(Windowsパッケージマネージャー)をインストールするか、この手順をスキップすることを選択できます。
  3. インストール後、ウィザードが完了し、node.jsが正常にインストールされ、端末を開き、 npm -vを実行してNPMバージョンを表示します。

また、プログラムでノードを検索する場合は、node.jsコマンドプロンプトを見つける必要があります。

node.jsを使用したサーバー側JavaScriptの学習node.jsを使用したサーバー側JavaScriptの学習node.jsを使用したサーバー側JavaScriptの学習node.jsを使用したサーバー側JavaScriptの学習コマンドプロンプトは、javaScript node.jsコードを入力してコードをすぐに評価し、結果を出力できるREPL(Read-Evaluation-Printループ)を提供します。 JavaScriptを外部ファイルからREPLセッションなどにロードすることもできます。

  1. 「こんにちは世界」

新しいテクノロジーの学習は、「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が表示されます!

node.jsを使用したサーバー側JavaScriptの学習 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を解析し、アクセスしたファイルのパス名を見つけるhttppath 、およびurlモジュールが含まれます。 process.cwd() (または現在の作業ディレクトリ)と要求されたファイルへのパスを使用して、サーバーのハードドライブで実際のファイル名を見つけます。

次に、非同期操作であるファイルが存在するかどうかを確認するため、コールバック関数が必要です。ファイルが存在しない場合、404が見つかっていないメッセージがユーザーに送信され、関数が返されます。それ以外の場合は、 fs.readFile()を使用してファイルを読み取ります。ブラウザでhttp://localhost:8080/path/to/fileアクセスすると、ファイルがブラウザに表示されます。

node.jsを使用したサーバー側JavaScriptの学習 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を使用したサーバー側JavaScriptの学習次のステップ

node.jsは、高性能リアルタイムアプリケーションの作成を簡素化する非常にエキサイティングなテクノロジーです。あなたがそれの利点を見て、あなた自身のアプリケーションのいくつかでそれを使用できることを願っています。 node.jsには強力なモジュールシステムがあるため、アプリケーションでオープンソースのサードパーティライブラリを使いやすく、データベース接続レイヤー、テンプレートエンジン、メールクライアント、さらにはこのコンテンツをすべて接続するための完全なフレームワークなど、ほとんどすべてのモジュールが利用可能です。

幸せなnode.jsプログラミングをお祈りします!

この記事は更新されており、キングスリー・ウバからの貢献が含まれています。キングスレーは、読者を教育し、刺激するコンテンツを作成することに情熱を傾けています。趣味には、読書、サッカー、サイクリングが含まれます。

以上がnode.jsを使用したサーバー側JavaScriptの学習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?JavaScriptのデータ型:ブラウザとNodejsに違いはありますか?May 14, 2025 am 12:15 AM

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

JavaScriptコメント://および / * *を使用するためのガイドJavaScriptコメント://および / * *を使用するためのガイドMay 13, 2025 pm 03:49 PM

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

Python vs. JavaScript:開発者の比較分析Python vs. JavaScript:開発者の比較分析May 09, 2025 am 12:22 AM

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

Python vs. JavaScript:ジョブに適したツールを選択するPython vs. JavaScript:ジョブに適したツールを選択するMay 08, 2025 am 12:10 AM

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScript:それぞれの強みを理解するPythonとJavaScript:それぞれの強みを理解するMay 06, 2025 am 12:15 AM

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

JavaScriptのコア:CまたはCの上に構築されていますか?JavaScriptのコア:CまたはCの上に構築されていますか?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptアプリケーション:フロントエンドからバックエンドまでJavaScriptアプリケーション:フロントエンドからバックエンドまでMay 04, 2025 am 12:12 AM

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

Python vs. Javascript:どの言語を学ぶべきですか?Python vs. Javascript:どの言語を学ぶべきですか?May 03, 2025 am 12:10 AM

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

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