ホームページ > ウェブフロントエンド > jsチュートリアル > node.jsを使用したサーバー側JavaScriptの学習

node.jsを使用したサーバー側JavaScriptの学習

Lisa Kudrow
リリース: 2025-03-13 10:35:10
オリジナル
434 人が閲覧しました

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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート