Node.jsチュートリアル–初心者向けの完全ガイド



このNode.jsチュートリアルでは、Node.jsの基本的なアーキテクチャ、動作、およびさまざまなモジュールについて説明します。また、Node.jsとExpress.jsの実用的な実装についても説明します。

Node.jsについて聞いたことがあれば、それがJavaScriptの最も著名で強力なフレームワークの1つであることをご存知かもしれません。リリース以来、IT市場での地位を維持し続けています。新しく活気のあるものが導入されても お気に入り 、 、Meteorなど、Node.jsの人気は止まらないようです。なぜだろうか?さて、このNode.jsチュートリアルの助けを借りて、私はあなたにそれへの完全な洞察を与えるでしょう。だから、Node.jsに恋をする準備をしてください。

このNode.jsチュートリアルでは、以下のトピックについて説明します。





Node.jsとは何ですか?

Node.jsは、で開発された強力なフレームワークです。 ChromeのV8JavaScriptエンジン JavaScriptをネイティブマシンコードに直接コンパイルします。これは、サーバー側のWebアプリケーションを作成するために使用される軽量のフレームワークであり、JavaScriptAPIを拡張して通常のサーバー側の機能を提供します。これは通常、大規模なアプリケーション開発、特にビデオストリーミングサイト、シングルページアプリケーション、およびその他のWebアプリケーションに使用されます。 Node.js 作る イベント駆動型のノンブロッキングI / Oモデルを使用することで、データ集約型のリアルタイムアプリケーションに最適です。

他のプログラミング言語と同様に、node.jsはパッケージとモジュールを利用します。これらは、さまざまな関数を含み、npm(ノードパッケージマネージャー)からコードにインポートされ、プログラムで利用されるライブラリです。 Node.jsを定義する主な機能のいくつかを以下に示します。



Node.jsの機能

  1. オープンソース
    Node.jsは、巨大なコミュニティによってサポートされているオープンソースのフレームワークMITライセンスです。そのコミュニティはかなり活発で、Node.jsアプリケーションに新しい機能を追加するのに貢献しています。
  2. シンプルで速い
    Node.jsはGoogleChromeのV8JavaScriptエンジン上に構築されているため、そのライブラリは高速なコード実行が可能です。
  3. 非同期
    Node.jsのすべてのライブラリは非同期です。つまり、Node.jsベースのサーバーは、APIが応答を返送して次のAPIに進むのを待つことはありません。
  4. 高いスケーラビリティ
    イベントメカニズムにより、Node.jsは非常にスケーラブルであり、サーバーが非ブロッキング応答を行うのに役立ちます。
  5. シングルスレッド
    イベントループの助けを借りて、Node.jsはシングルスレッドモデルに従うことができます。これにより、1つのプログラムで複数のリクエストを処理できます。
  6. バッファリングなし
    Node.jsアプリケーションの主な機能の1つは、データをバッファリングしないことです。
  7. クロスプラットフォーム
    Node.jsは、Windows、MAC、Linuxなどのさまざまなプラットフォームで簡単に構築およびデプロイできます。

さらに進んで、実際のコードをブラウザーにデプロイする方法を見てみましょう。ただし、その前に、システムにダウンロードしてインストールする必要があります。あなたは完全なことを知るために私の他の記事を参照することができます Node.jsのインストールプロセス

それでは、このNode.jsチュートリアルでさらに進んでみましょう。ここでは、Node.jsの最も重要なコンポーネントであるnpmについて説明します。

NPM(ノードパッケージマネージャー)

NPMはNodePackage Managerの略で、その名前が示すようにNode.jsパッケージ/モジュールのパッケージマネージャーです。 Nodeバージョン0.6.0から。以降、ノードのインストールでnpmがデフォルトとして追加されました。これにより、npmを明示的にインストールする手間が省けます。



NPMは基本的に2つの方法で役立ちます。

Javaプログラムをコンパイルするにはどうすればよいですか
  1. プロジェクトで簡単にダウンロードして使用できるnode.jsパッケージ/モジュールのオンラインリポジトリを提供およびホストします。あなたはここでそれらを見つけることができます: npmjs.com
  2. さまざまなNode.jsパッケージをインストールし、Node.jsのバージョンとパッケージの依存関係を管理するためのコマンドラインユーティリティを提供します。

しかし今、あなたはこれらのモジュールが正確に何であるか、そしてそれらがNode.jsアプリケーションを構築するのにどのように役立つのか疑問に思う必要があります。このNode.jsチュートリアルの次のセクションでは、Node.jsモジュールについての完全な洞察を提供します。

Node.jsモジュール

Node.jsのモジュールは、単一または複数のJSファイルにバンドルされているさまざまな機能を表します。これらのモジュールには固有のコンテキストがあるため、他のモジュールの範囲を妨害したり汚染したりすることはありません。

これらのモジュールは、コードの再利用を可能にし、使いやすさを向上させます。 Node.jsは、基本的に3種類のモジュールを提供します。

  1. コアモジュール
  2. ローカルモジュール
  3. サードパーティモジュール

コアモジュール

Node.jsは非常に 軽量 フレームワークでは、コアモジュールは絶対最小機能をバンドルしています。これらのモジュールは通常、ノードプロセスが実行を開始したときにロードされます。これらのコアモジュールをコードで使用するには、これらのコアモジュールをインポートするだけです。

以下に、重要なコアモジュールのいくつかをリストしました。

コアモジュール 説明
http Node.js HTTPサーバーの作成に必要なクラス、メソッド、およびイベントが含まれています
url ノードでのURL解決と解析のメソッドが含まれています
クエリ文字列 Nodeのクエリ文字列を処理するメソッドが含まれています
ファイルパスを処理するためのメソッドが含まれています
fs ファイルI / Oを操作するためのクラス、メソッド、およびイベントが含まれています
有用 プログラマーに役立つユーティリティ関数が含まれています

以下のコードを使用して、コアモジュールをロードできます。

var module = require( 'module_name')

ここで、「ローカルモジュール」とは何かを見てみましょう。

ローカルモジュール

Node.jsのローカルモジュールは、アプリケーションのユーザー/開発者によってローカルに作成されるカスタムモジュールです。これらのモジュールには、NPMを使用してNode.jsコミュニティで簡単に配布できる個別のファイルやフォルダーにバンドルされたさまざまな機能を含めることができます。

これらのモジュールは、コアモジュールと同様の方法でロードされます。基本的な例を使用してそれを行う方法を示しましょう。

カスタム/ローカルmodule.jsファイルを作成します

var detail = {name:function(name){console.log( 'Name:' + name)}、domain:function(domain){console.log( 'Domain:' + domain)}} module.exports = detail

モジュールファイルをメインアプリケーションファイルに含めます。

var myLogModule = require( './ Local_module.js')myLogModule.name( 'Edureka')myLogModule.domain( 'Education')

これで、以下のコマンドを使用してこれらのファイルを実行できます。

ノードapplication.js

ここで、外部モジュールとは何かをお見せしましょう。

外部モジュール

外部または3を使用できますrdNPM経由でダウンロードするだけでパーティモジュール。これらのモジュールは通常、他の開発者によって開発されており、自由に使用できます。最高の外部モジュールのいくつかは、エクスプレス、リアクション、ゴクゴク、マングース、モカなどです。

サードパーティモジュールのグローバルロード:

npm install --g

モジュールファイルをメインアプリケーションファイルに含めます。

npm install --save

JSONファイル

ザ・ package.jsonファイル Node.jsは、アプリケーション全体の中心です。これは基本的に、プロジェクトのメタデータを含むマニフェストファイルです。したがって、このファイルを理解して操作することは、Nodeプロジェクトの開発を成功させるために非常に重要になります。

package.jsonファイルは通常、アプリケーションのメタデータで構成され、さらに次の2つのカテゴリに分類されます。

  1. メタデータプロパティの識別: これは、プロジェクト名、現在のモジュールバージョン、ライセンス、プロジェクトの作成者、プロジェクトの説明などのプロパティで構成されます。
  1. ファイルへの直接書き込み: 必要な情報をpackage.jsonファイルに直接書き込んで、プロジェクトに含めることができます。

これで、NodeJSアプリケーションのさまざまなコンポーネントについてすでに理解できました。このNode.jsチュートリアルの次のセクションでは、いくつかのNode Jの基本を共有して、実践から始めることができるようにします。

Node.jsの基本

Node.jsはJavaScriptフレームワークであるため、JavaScript構文を使用します。 JavaScriptについて詳しく知りたい場合は、こちらを参照してください。 。今のところ、次のようなNode.jsの基本をブラッシュアップします。

データ型

他のプログラミング言語と同様に、Node.jsにはさまざまなデータ型があり、さらにプリミティブデータ型と非プリミティブデータ型に分類されます。

プリミティブデータ型は次のとおりです。

  1. ストリング
  2. ブール値
  3. ヌル
  4. 未定義

非プリミティブデータ型は次のとおりです。

  1. オブジェクト
  2. 日付
  3. アレイ

変数

変数は、プログラムの過程で変化する可能性のある値を保持するエンティティです。 Node.jsで変数を作成するには、予約済みのキーワードvarを使用する必要があります。コンパイラが自動的にデータ型を選択するため、データ型を割り当てる必要はありません。

構文:

var varName = value

演算子

Node.jsは、以下の演算子をサポートしています。

演算子タイプ 演算子
算術 +、-、/、*、%、++、-
割り当て =、+ =、-=、* =、/ =、%=
条件付き =?
比較 ==、===、!=、!==、>、> =、<, <=,
論理的 &&、||、!
ビット単位 &、|、^、〜、<>、>>>

機能

Node.jsの関数は、名前があり、特定のタスクを実行するために記述されたコードのブロックです。キーワード関数を使用して作成する必要があります。関数は通常、2段階のプロセスです。 1つ目は関数を定義し、2つ目はそれを呼び出すことです。以下は、関数を作成して呼び出す構文です。

例:

//関数の定義functiondisplay_Name(firstName、lastName){alert( 'Hello' + firstName + '' + lastName)} //関数の呼び出しdisplay_Name( 'Park'、 'Jimin')

オブジェクト

オブジェクトは、プロパティとメソッドに関して複数の値を保持できる非プリミティブデータ型です。クラスの概念がないため、Node.jsオブジェクトはスタンドアロンエンティティです。オブジェクトは次の2つの方法で作成できます。

  1. オブジェクトリテラルの使用
  2. オブジェクトコンストラクターの使用

例:

//プロパティとメソッドを持つオブジェクトvaremployee = {//プロパティfirstName: 'Minho'、lastName: 'Choi'、age:35、salary:50000、// method getFullName:function(){return this.firstName + '' + this.lastName}}

ファイルシステム

物理ファイルシステムにアクセスするために、Node.jsは fs 基本的にすべての非同期および同期ファイルI / O操作を処理するモジュール。このモジュールは、以下のコマンドを使用してインポートされます。

var fs = require( 'fs')

ファイルシステムモジュールの一般的な使用法のいくつかは次のとおりです。

  • ファイルを読む
    1. fs.readFile()
var http = require( 'http')var fs = require( 'fs')http.createServer(function(req、res){fs.readFile( 'script.txt'、function(err、data){res.writeHead( 200、{'Content-Type': 'text / html'})res.write(data)res.end()})})。listen(8080)
  • ファイルを作成する
    1. appendFile()
    2. 開いた()
    3. writeFile()
  • ファイルを更新する
    1. fs.appendFile()
    2. fs.writeFile()
  • ファイルを削除する
    1. fs.unlink()
  • ファイルの名前を変更する
    1. fs.rename()

したがって、これらのコマンドを使用すると、ファイルに対して必要なすべての操作をほぼ実行できます。このNode.jsチュートリアルをさらに進めて、イベントとは何か、Node.jsでそれらがどのように処理されるかを見てみましょう。

イベント

すでに述べたように、Node.jsアプリケーションはシングルスレッドでイベント駆動型です。 Node.jsはイベント駆動型であるため同時実行性をサポートしているため、イベントやコールバックなどの概念を利用します。 async関数呼び出しは、Node.jsがアプリケーション全体で並行性を維持するのに役立ちます。

基本的に、Node.jsアプリケーションには、イベントを待機してリッスンするメインループがあり、イベントが完了すると、すぐにコールバック関数が開始されます。

次の図は、Node.jsでイベントがどのように駆動されるかを表しています。

スレッドモデル-Node.jsチュートリアル-Edureka

ここで注意しなければならないことの1つは、イベントはコールバック関数に似ていますが、違いはそれらの機能にあるということです。非同期関数がその結果を返すと、コールバックが呼び出されますが、イベント処理はオブザーバーパターンで完全に機能します。また、Node.jsでは、イベントをリッスンするメソッドはオブザーバーと呼ばれます。イベントがトリガーされると、そのリスナー関数が自動的に実行を開始します。イベントモジュールとEventEmitterクラスは、イベントをイベントリスナーにバインドするために使用される複数の組み込みイベントを提供します。以下にその構文を書き留めました。

イベントをイベントリスナーにバインドする

//イベントモジュールをインポートしますvarmy_Events = require( 'events')// eventEmitterオブジェクトを作成しますvarmy_EveEmitter = new my_Events.EventEmitter()

イベントハンドラーをイベントにバインドする

//イベントとイベントハンドラーのバインドmy_EveEmitter.on( 'eventName'、eventHandler)

イベントの発火

//イベントを発生させますmy_EveEmitter.emit( 'eventName')

それでは、このNode.jsイベントセクションで説明したことを実装してみましょう。以下のコードは、Node.jsでのイベント実行の簡単な表現を示しています。

配列ソートc ++
var Emitter = require( 'events')。EventEmitter function iterateProcessor(num){var emt = new Emitter()setTimeout(function(){for(var i = 1 i&lt = num i ++){emt.emit( 'BeforeProcess' 、i)console.log( 'Processing Iteration:' + i)emt.emit( 'AfterProcess'、i)}}、5000)return emt} var it = iterateProcessor(5)it.on( 'BeforeProcess'、function( info){console.log( 'プロセスの開始' + info)})it.on( 'AfterProcess'、function(info){console.log( '処理の終了' + info)

このNode.jsチュートリアルの次のセクションでは、HTTPモジュールと呼ばれるNode.jsの最も重要なモジュールの1つについての洞察を提供します。

HTTPモジュール

通常、Node.jsはサーバーベースのアプリケーションの開発に使用されます。ただし、このモジュールを使用すると、クライアントの要求に応答できるWebサーバーを簡単に作成できます。したがって、Webモジュールとも呼ばれ、Node.jsがサーバー要求を処理するのを容易にするHTTPや要求などのモジュールを提供します。

以下のコードを記述するだけで、このモジュールをNode.jsアプリケーションに簡単に含めることができます。

var http = require( 'http')

以下に、Node.jsでWebサーバーがどのように開発されるかを示すコードを記述しました。

// httpライブラリを呼び出すvarhttp = require( 'http')var url = require( 'url')//サーバーを作成するvar server = http.createServer(function(req、res){//コンテンツヘッダーを設定するres.writeHead( 200、( 'Content-Type'、 'text / html'))var q = url.parse(req.url、true).query var txt = q.year + '' + q.month //応答に文字列を送信res.end(txt)})//サーバーリスニングポートとして8082を割り当てるserver.listen(8082)

このNode.jsチュートリアルの次のセクションでは、サーバー側のWebアプリケーション開発に頻繁に使用されるExpress.jsについて説明します。

Express.js

Express.jsは、Node.js上に構築されたフレームワークであり、サーバーとサーバー側アプリケーションのルート間のデータフローの管理を容易にします。これは軽量で柔軟なフレームワークであり、Webおよびモバイルアプリケーションの開発に必要な幅広い機能を提供します。

Express.jsは、Node.jsのミドルウェアモジュールで開発されています。 接続する 。接続モジュールはさらに利用します http Node.jsと通信するモジュール。したがって、接続ベースのミドルウェアモジュールのいずれかを使用している場合は、Express.jsと簡単に統合できます。

これだけでなく、Express.jsの主な利点のいくつかは次のとおりです。

Javaでパスを設定する方法
  • Webアプリケーションの開発を高速化します
  • シングルページ、マルチページ、およびハイブリッドタイプのモバイルおよびWebアプリケーションの構築を支援します
  • Expressは、JadeとEJSの2つのテンプレートエンジンを提供します。
  • Expressは、Model-View-Controller(MVC)アーキテクチャに従います
  • MongoDB、Redis、MySQLなどのデータベースと統合します
  • エラー処理ミドルウェアを定義します
  • アプリケーションの構成とカスタマイズを簡単にします。

これらすべての機能を備えたExpressは、MEANスタックのバックエンド部分を担当します。 Mean Stackは、動的なWebサイトおよびWebアプリケーションの構築に使用されるオープンソースのJavaScriptソフトウェアスタックです。ここに、 平均 を意味する M ongoDB、 IS xpress.js、 ngularJS、および N ode.js。

Express.jsがNode.jsとどのように連携して作業を容易にするかを理解するための簡単な例を見てみましょう。ただし、Express.jsの使用を開始する前に、システムにインストールする必要があります。

Express.jsをグローバルにインストールするには、次のコマンドを使用できます。

npm install -g express

または、プロジェクトフォルダにローカルにインストールする場合は、次のコマンドを実行する必要があります。

npm install express --save

すべての準備が完了したので、次に実際の実装に直接ジャンプしましょう。ここでは、Node.jsとExpress.jsを使用した簡単なユーザー認証アプリケーションを紹介します。

Node.jsチュートリアルExpress.jsを使用したステップバイステップのアプリケーション開発

このために、以下のファイルが必要になります。

  • package.json
  • script.js
  • ビュー
    • index.jade
    • login.jade
    • secure.jade
    • 許可されていない.jade
    • welcome.jade
  • lib
    • routers.js

それでは、始めましょう package.json

{'author': 'Edureka'、 'name': 'Express_Demo'、 'description': 'Express with Node.js'、 'version': '0.0.0'、 'scripts':{'start': 'node script.js '}、' engines ':{' node ':' 〜0.4.12 '}、' dependencies ':{' connect-flash ':' ^ 0.1.1 '、' cookie-parser ':' ^ 1.4 .3 '、' express ':' ^ 3.21.2 '、' jade ':' ^ 0.20.3 '、' req-flash ':' 0.0.3 '}、' devDependencies ':{}}

次に、を作成する必要があります script.js

var express = require( 'express')var http = require( 'http')var port = 8999 var app = express()const flash = require( 'connect-flash')var cookieParser = require( 'cookie-parser') var server = http.createServer(app)function checkAuth(req、res、next){console.log( 'checkAuth' + req.url)//ログインしていないユーザーに/ secureを提供しないif(req.url = == '/ secure' &&(!req.session ||!req.session.authenticated)){res.render( 'unauthorized'、{status:403})return} next()} app.use(flash() )app.use(cookieParser())app.use(express.session({secret: 'example'}))app.use(express.bodyParser())app.use(checkAuth)app.use(app.router) app.set( 'view engine'、 'jade')app.set( 'view options'、{layout:false})require( './ lib / routes.js')(app)app.listen(port)console .log( 'ポート%sでリッスンしているノード'、ポート)

次に、viewという名前のフォルダーを作成します。このフォルダーの下に、さまざまなページビューを担当するjadeファイルを追加します。作成する必要がある最初のビューファイルは index.jade

!!! 5 html(lang = 'en')headtitleユーザー認証の例bodyh1 center Expressh3を使用した認証デモh4に移動ulli:a(href = '/ secure')セキュアコンテンツli:a(href = '/ welcome')ウェルカムページli:a(href = '/ logout')ログアウト

次に、を作成します login.jade ファイル。

!!! 5 html(lang = 'en')head titleExpress認証の例bodyh1centerこのExpress認証の例にサインインするcenterp使用 ユーザー ユーザー名と パス パスワード用。 form(method = 'post')p label(for = 'username')Eメールアドレスinput(type = 'text'、name = 'username'、class = 'form-control'、id = 'exampleInputPassword1'、placeholder = ' Email '、style =' width:400px ')p center label(for =' password ')Password input(type =' password '、name =' password '、class =' form-control '、id =' exampleInputPassword1 '、 placeholder = 'Password'、style = 'width:400px')p center送信-フラッシュ内の各メッセージh4(style = 'color:red')#{message}

次のステップは、を作成することです welcome.jade

!!! 5 html(lang = 'en')headtitleユーザー認証の例bodyh1 center Edurekaチュートリアルへようこそ!

次に、を作成します secure.jade ファイル。

!!! 5 html(lang = 'en')headtitleエクスプレス認証の例bodyh1 centerこんにちは、安全なユーザーです。 p ul liに移動します:a(href = '/ secure')セキュアコンテンツli:a(href = '/ welcome')ウェルカムページli:a(href = '/ logout')ログアウト

次に、を作成します 許可されていない.jade ファイル。

!!! 5 html(lang = 'en')headtitleユーザー認証の例bodyh1center無許可pこのページを表示することは許可されていません。 pお願いします ' 続ける

次に、フォルダを作成して名前を付ける必要があります lib 。今、作成します route.js すべてのページをマップするファイル。

var util = require( 'util')module.exports = function(app){app.get( '/'、function(req、res、next){res.render( 'index')})app.get( ' / welcome '、function(req、res、next){res.render(' welcome ')})app.get(' / secure '、function(req、res、next){res.render(' secure ')} )app.get( '/ login'、function(req、res、next){res.render( 'login'、{flash:req.flash()})})app.post( '/ login'、function( req、res、next){//ここでデータベースルックアップまたはよりスケーラブルな何かを実行したい場合がありますif(req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass'){req.session.authenticated = true res.redirect( '/ secure')} else {req.flash( 'error'、 'ユーザー名とパスワードが正しくありません')res。 redirect( '/ login')}})app.get( '/ logout'、function(req、res、next){delete req.session.authenticated res.redirect( '/')})}

このコードを自分で実行したい場合は、ここからダウンロードできます。 Node.jsチュートリアルPDF

これで、このNode.jsチュートリアルは終了です。 Node.jsの概念をゼロから説明できたと思います。

この「Node.jsチュートリアル」を見つけた場合 」関連、 チェックアウト 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。

質問がありますか?このNode.jsチュートリアルのコメントセクションでそれについて言及してください。折り返しご連絡いたします。