Node.jsの紹介

この投稿は、サーバー側のJavaScriptランタイム環境であるNode.jsの入門ガイドです。 Node.jsはGoogleChrome V8 JavaScriptエンジン上に構築されており、主にWebサーバーの作成に使用されますが、これに限定されません。

Node.jsはのランタイム環境JavaScriptで実行されますサーバ

Node.jsはオープンソースのクロスプラットフォームであり、2009年の導入以来、非常に人気があり、現在ではWeb開発シーンで重要な役割を果たしています。 GitHubスターが人気の指標の1つである場合、58000以上のスターを持つことは、非常に人気があることを意味します。

Node.jsは、ブラウザの外部で、GoogleChromeのコアであるV8JavaScriptエンジンを実行します。 Node.jsは、Chrome JavaScriptランタイムを非常に高速に作成した(そして今後も作成し続ける)エンジニアの作業を活用できます。これにより、Node.jsは、パフォーマンスの大幅な向上とジャストインタイムコンパイルの恩恵を受けることができます。 V8が実行されます。このおかげで、Node.jsで実行されているJavaScriptコードは非常にパフォーマンスが高くなります。

Node.jsアプリは、リクエストごとに新しいスレッドを作成することなく、単一のプロセスによって実行されます。 Nodeは、JavaScriptコードがブロックされないようにする一連の非同期I / Oプリミティブを標準ライブラリに提供します。通常、Node.jsのライブラリは非ブロックパラダイムを使用して記述されているため、ブロック動作は通常ではなく例外になります。

Node.jsがネットワークからの読み取りなどのI / O操作を実行する必要がある場合、スレッドをブロックする代わりにデータベースまたはファイルシステムにアクセスします。Node.jsは、CPUサイクルの待機を無駄にするのではなく、応答が戻ったときに操作を再開します。 。

これにより、Node.jsは、バグの主な原因となるスレッドの同時実行性を管理する負担をかけることなく、単一のサーバーで数千の同時接続を処理できます。

Node.jsには独自の利点があります。これは、ブラウザー用のJavaScriptを作成する何百万ものフロントエンド開発者が、まったく異なる言語を習得しなくてもサーバー側コードとフロントエンド側コードを実行できるようになったためです。

Node.jsでは、新しいECMAScriptすべてのユーザーがブラウザーを更新するのを待つ必要がないため、標準を問題なく使用できます。Node.jsのバージョンを変更して、使用するECMAScriptのバージョンを決定する必要があります。また、特定の実験を有効にすることもできます。フラグ付きのノードを実行することによる機能。

Node.jsには膨大な数のライブラリがあります

npmシンプルな構造でnode.jsのエコシステムが急増し、npmレジストリは自由に使用できる約500.000のオープンソースパッケージをホストしています。

Node.jsアプリケーションの例

Node.jsのHelloWorldの最も一般的な例は、Webサーバーです。

const http = require('http')

const hostname = ‘127.0.0.1’ const port = 3000

const server = http.createServer((req, res) => { res.statusCode = 200 res.setHeader(‘Content-Type’, ‘text/plain’) res.end(‘Hello World\n’) })

server.listen(port, hostname, () => { console.log(Server running at http://</span><span style="color:#e6db74">${</span><span style="color:#a6e22e">hostname</span><span style="color:#e6db74">}</span><span style="color:#e6db74">:</span><span style="color:#e6db74">${</span><span style="color:#a6e22e">port</span><span style="color:#e6db74">}</span><span style="color:#e6db74">/) })

このスニペットを実行するには、次のように保存しますserver.jsファイルして実行node server.jsあなたのターミナルで。

このコードには最初にNode.jsが含まれていますhttpモジュール

Node.jsには素晴らしい機能があります標準ライブラリ、ネットワーキングのファーストクラスのサポートを含みます。

ザ・createServer()の方法http新しいHTTPサーバーを作成し、それを返します。

サーバーは、指定されたポートとホスト名でリッスンするように設定されています。サーバーの準備が整うと、コールバック関数が呼び出されます。この場合、サーバーが実行中であることが通知されます。

新しいリクエストを受信するたびに、requestイベントが呼び出され、2つのオブジェクトを提供します:リクエスト(http.IncomingMessageオブジェクト)と応答(http.ServerResponseオブジェクト)。

これらの2つのオブジェクトは、HTTP呼び出しを処理するために不可欠です。

1つ目は、リクエストの詳細を提供します。この簡単な例では、これは使用されていませんが、リクエストヘッダーとリクエストデータにアクセスできます。

2つ目は、呼び出し元にデータを返すために使用されます。

この場合、

res.statusCode = 200

statusCodeプロパティを200に設定して、応答が成功したことを示します。

Content-Typeヘッダーを設定します。

res.setHeader('Content-Type', 'text/plain')

そして、応答を閉じて、コンテンツを引数として追加します。end()

res.end('Hello World\n')

Node.jsフレームワークとツール

Node.jsは低レベルのプラットフォームであり、開発者にとって物事をより簡単で興味深いものにするために、Node.js上に何千ものライブラリが構築されました。

それらの多くは、人気のあるオプションとして時間をかけて確立されました。これは、私が非常に関連性があり、学ぶ価値があると私が考えるものの包括的でないリストです:

  • Express、Webサーバーを作成するための最もシンプルで強力な方法の1つ。サーバーのコア機能に焦点を当てた、ピニオン化されていないそのミニマリストアプローチが成功の鍵です。
  • 流星、信じられないほど強力なフルスタックフレームワークであり、JavaScriptを使用してアプリを構築し、クライアントとサーバーでコードを共有するための同形のアプローチを提供します。かつてはすべてを提供していた既製のツールでしたが、現在はフロントエンドのライブラリReactと統合されています。VueとAngular。モバイルアプリの作成にも使用できます。
  • コアExpressの背後にある同じチームによって構築された、は、長年の知識に基づいて構築され、さらにシンプルで小型になることを目指しています。既存のコミュニティを混乱させることなく互換性のない変更を作成する必要性から生まれた新しいプロジェクト。
  • Next.js、サーバー側をレンダリングするためのフレームワークReactアプリケーション。
  • マイクロ、非同期HTTPマイクロサービスを作成するための非常に軽量なサーバー。
  • Socket.io、ネットワークアプリケーションを構築するためのリアルタイム通信エンジン。

私の無料ダウンロードNode.jsハンドブック


その他のノードチュートリアル: