Node.JS

Node.jsは、サーバー上で実行されるオープンソースのクロスプラットフォームJavaScriptランタイムです。 2009年のリリース以来、このプラットフォームは非常に人気があり、最近のWeb開発の分野で非常に重要な役割を果たしています。
記事全文については、Node.JS をご覧ください。 ...

フィルタを表示
ホスティングフィルター
A2 Themes & Host Me Filter

オペレーションシステム

ディスクスペース

RAMメモリ

ディスクタイプ

CPUコア

ソート

トラストパイロット Dream Host
スコア - 9.7
Dream Host Logo
Dream Host

ドリームホスト

DreamObjects 40 GB
$0.95 /毎月

レビュー 3778

29 クーポン

サーバーの場所


Dream Host Servers in Ashburnアメリカ
比較する
トラストパイロット ICDSoft
スコア - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /毎月

レビュー 233


サーバーの場所


ICDSoft Servers in Sofiaブルガリア ICDSoft Servers in Bostonアメリカ ICDSoft Servers in Hong Kong香港
比較する
トラストパイロット ICDSoft
スコア - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /毎月

レビュー 233


サーバーの場所


ICDSoft Servers in Sofiaブルガリア ICDSoft Servers in Bostonアメリカ ICDSoft Servers in Hong Kong香港
比較する
スコア - 9
A2hosting Logo
A2hosting

A2ホスティング

Lite
$3.92 /毎月

50 クーポン

サーバーの場所


A2hosting Servers in Amsterdamオランダ A2hosting Servers in Michiganアメリカ A2hosting Servers in Singaporeシンガポール
比較する
トラストパイロット Keliweb
スコア - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /毎月

レビュー 453


サーバーの場所


Keliweb Servers in Milanoイタリア
比較する
トラストパイロット JustHostMe
スコア - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /毎月

レビュー 72


サーバーの場所


JustHostMe Servers in United Kingdomイギリス
比較する
トラストパイロット Dream VPS
スコア - 8.6
Dream VPS Logo
Dream VPS

ドリームVPS

STARTER
$3.75 /毎月

レビュー 7


サーバーの場所


Dream VPS Servers in Hong Kong香港 Dream VPS Servers in Santa Clara Dream VPS Servers in New Yorkアメリカ Dream VPS Servers in Londonイギリス Dream VPS Servers in Amsterdamオランダ Dream VPS Servers in Frankfurtドイツ Dream VPS Servers in Israelイスラエル
比較する
トラストパイロット Reseller Cube
スコア - 8
Reseller Cube Logo
Reseller Cube

リセラーキューブ

Basic USA
$5 /毎月

レビュー 4


サーバーの場所


Reseller Cube Servers in Raleighアメリカ
比較する
トラストパイロット Univa Host
スコア - 8
Univa Host Logo
Univa Host

ユニバホスト

E-ECONOMY
$2.99 /毎月

レビュー 3


サーバーの場所


Univa Host Servers in Germanyドイツ Univa Host Servers in United Statesアメリカ
比較する
トラストパイロット OperaVPS
スコア - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /毎月

レビュー 3


サーバーの場所


OperaVPS Servers in United Kingdomイギリス OperaVPS Servers in Austriaオーストリア OperaVPS Servers in Canadaカナダ OperaVPS Servers in Denmarkデンマーク OperaVPS Servers in Franceフランス OperaVPS Servers in Germanyドイツ OperaVPS Servers in Italyイタリア OperaVPS Servers in Netherlandsオランダ OperaVPS Servers in Romaniaルーマニア OperaVPS Servers in United Statesアメリカ
比較する
トラストパイロット L3Web Hosting
スコア - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Webホスティング

START UP
$1.99 /毎月

レビュー 2


サーバーの場所


L3Web Hosting Servers in Indiaインド L3Web Hosting Servers in Munichドイツ L3Web Hosting Servers in Miamiアメリカ L3Web Hosting Servers in Singaporeシンガポール L3Web Hosting Servers in United Kingdomイギリス
比較する
トラストパイロット Idea Stack
スコア - 7.4
Idea Stack Logo
Idea Stack

アイデアスタック

LEVEL 1
$2 /毎月

レビュー 2


サーバーの場所


Idea Stack Servers in Seattleアメリカ
比較する
トラストパイロット Epic Host
スコア - 7.4
Epic Host Logo
Epic Host

エピックホスト

Cloud hosting
$2.37 /毎月

レビュー 1


サーバーの場所


Epic Host Servers in New Delhiインド Epic Host Servers in Unionアメリカ
比較する
トラストパイロット itanets.co.uk
スコア - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /毎月

レビュー 2

比較する
トラストパイロット Digital Ocean
スコア - 3.8
Digital Ocean Logo
Digital Ocean

デジタルオーシャン

$5 /mo
$5 /毎月

レビュー 214

38 クーポン

サーバーの場所


Digital Ocean Servers in Indiaインド Digital Ocean Servers in New Yorkアメリカ Digital Ocean Servers in Amsterdamオランダ Digital Ocean Servers in Londonイギリス Digital Ocean Servers in Torontoカナダ Digital Ocean Servers in Frankfurt am Mainドイツ Digital Ocean Servers in Singaporeシンガポール
比較する
スコア - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /毎年


サーバーの場所


HOST PRO KE Servers in Germanyドイツ
比較する
スコア - 9.4
Accu WebHosting Logo
Accu WebHosting

アキュウェブホスティング

Windows Personal Web Hosting
$2.99 /毎月

19 クーポン

サーバーの場所


Accu WebHosting Servers in Franceフランス Accu WebHosting Servers in Denverアメリカ Accu WebHosting Servers in Mumbaiインド Accu WebHosting Servers in Amsterdamオランダ Accu WebHosting Servers in Frankfurt am Mainドイツ Accu WebHosting Servers in Sydneyオーストラリア Accu WebHosting Servers in Londonイギリス Accu WebHosting Servers in Polandポーランド Accu WebHosting Servers in Canadaカナダ Accu WebHosting Servers in Singaporeシンガポール
比較する
スコア - 9
Be hostings Logo
Be hostings

ホスティングする

StarterSSL
$3.36 /毎月


サーバーの場所


Be hostings Servers in Brusselsベルギー
比較する
スコア - 4.3
Gear Host Logo
Gear Host

ギアホスト

CloudSite Hobby
$5 /毎月


サーバーの場所


Gear Host Servers in Denverアメリカ
比較する
スコア - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /毎月


サーバーの場所


Mikro VPS Servers in Budapestハンガリー
比較する
スコア - 0
Simple Node Logo
Simple Node

シンプルノード

OpenVZ - 256MB
$3 /毎月

比較する

 

Node.js

 

 

Node.jsは、サーバー上で実行されるオープンソースのクロスプラットフォームJavaScriptランタイムです。 2009年のリリース以来、このプラットフォームは非常に人気があり、最近のWeb開発の分野で非常に重要な役割を果たしています。プロジェクトがGitHubで収集した星の数を人気の指標と見なすと、50,000を超える星を持つNode.jsは、非常に人気のあるプロジェクトです。

 

Node.jsプラットフォームは、GoogleChromeブラウザで使用されるGoogleのV8JavaScriptエンジン上に構築されています。このプラットフォームは主にWebサーバーの作成に使用されますが、その範囲はこれに限定されません。

 

Node.jsの主な機能を見てみましょう。

 

速度

 

Node.jsの主な魅力の1つは、速度です。 Node.jsで実行されるJavaScriptコードは、CやJavaなどのコンパイル言語で記述されたコードの2倍の速度であり、PythonやRubyなどのインタープリター言語よりも数桁高速です。この理由は、プラットフォームのノンブロッキングアーキテクチャであり、具体的な結果は使用するベンチマークによって異なりますが、全体として、Node.jsは非常に高速なプラットフォームです。

 

シンプルさ

 

Node.jsプラットフォームは、習得と使用が簡単です。実際、特に他のいくつかのサーバープラットフォームと比較すると、非常に単純です。

 

JavaScript

 

JavaScriptはNode.js環境で実行されます。つまり、ブラウザでJavaScriptをすでに使用している何百万ものフロントエンド開発者は、サーバー側の開発に移行するためのまったく新しいツールを習得しなくても、サーバー側とクライアント側の両方のコードを同じプログラミング言語で記述できます。

 

ブラウザとサーバーは同じ言語の概念を使用します。さらに、Node.jsは、プラットフォームに実装されているため、新しいECMAScript標準にすばやく移行できます。

 

Node.jsは開発者を完全に制御するサーバー側の環境であるため、ユーザーがこのためにブラウザーを更新するのを待つ必要はありません。その結果、Node.jsのサポートバージョンをインストールすると、新しい言語機能が利用できるようになります。

 

V8エンジン

 

Node.jsの中心となるのは、他のソリューションの中でも、GoogleChromeやその他のブラウザーで使用されるGoogleのオープンソースV8JavaScriptエンジンです。これは、Node.jsが、JavaScript Chromeランタイムを信じられないほど高速にした何千人ものエンジニアを活用し、V8の改善に向けて努力を続けていることを意味します。

 

非同期

 

従来のプログラミング言語(C、Java、Python、PHP)では、開発者がコードの非同期実行を明示的に処理しない限り、すべての命令がデフォルトでブロックされます。その結果、たとえば、このような環境で、JSONコードをダウンロードするネットワーク要求を行うと、要求が行われたストリームの実行は、応答が受信されて処理されるまで中断されます。

 

JavaScriptを使用すると、単一のスレッド、コールバック、および開発へのイベント駆動型アプローチを使用して、非同期の非ブロッキングコードを簡単に記述できます。重い操作を実行する必要があるたびに、適切なメカニズムにコールバックを渡します。このメカニズムは、この操作の完了直後に呼び出されます。その結果、プログラムが動作し続けるために、そのような操作の結果を待つ必要はありません。

 

同様のメカニズムはブラウザで生まれました。たとえば、待つ余裕はありませんAJAXボタンのクリックなどのユーザーアクションに応答できずに終了するように要求します。ユーザーがWebページを操作しやすくするために、ネットワークからのデータのダウンロードとボタンのクリックの処理の両方をすべて、リアルタイムで同時に実行する必要があります。

 

ボタンクリックイベントハンドラーを作成したことがある場合は、非同期プログラミング手法をすでに使用しています。

 

非同期メカニズムにより、単一のNode.jsサーバーが、スレッド管理や並列コード実行タスクでプログラマーに負担をかけることなく、数千の接続を同時に処理できます。そのようなことはしばしばエラーの原因になります。

 

Node.jsは、開発者にノンブロッキングの基本的なI / Oメカニズムを提供します。一般に、Node.jsフレームワークで使用されるライブラリは、ノンブロッキングのパラダイムを使用して記述されています。これにより、ブロッキング動作が標準ではなく例外になります。

 

Node.jsが、ネットワークからのデータのロード、データベースまたはファイルシステムへのアクセスなど、I / O操作を実行する必要がある場合、そのような操作の結果を待機するメインスレッドをブロックする代わりに、Node.jsはその操作を開始します。実行し、この操作の結果が受信されるまで他のことを続けます。

 

ライブラリ

 

npmと呼ばれるNode.jsのパッケージマネージャーを簡単かつ便利に操作できるため、Node.jsエコシステムは繁栄しています。現在、npmレジストリには50万を超えるオープンソースパッケージがあり、Node.js開発者なら誰でも自由に使用できます。

 

Node.jsプラットフォームの主な機能のいくつかを確認したので、実際に試してみましょう。インストールから始めましょう。

 

 

Node.js

 

 

Node.jsのインストール

 

Node.jsはさまざまな方法でインストールできますが、これについては後で説明します。したがって、すべての主要なプラットフォームの公式インストールパッケージを見つけることができます。

 

Node.jsをインストールするもう1つの非常に便利な方法は、オペレーティングシステムで提供されているパッケージマネージャーを使用することです。たとえば、この分野の事実上の標準であるmacOSパッケージマネージャーは、Homebrewと呼ばれます。

 

システムにノードがある場合は、コマンドラインで次のコマンドを実行してNode.jsをインストールできます。

 

brewインストールノード

 

LinuxやWindowsを含む他のオペレーティングシステムのパッケージマネージャーのリストは、ここにあります。

 

人気のあるNode.jsバージョンマネージャーはnvmです。このツールを使用すると、Node.jsのさまざまなバージョンを簡単に切り替えることができます。たとえば、新しいバージョンのNode.jsをインストールして試してから、必要に応じて古いバージョンに戻すことができます。 Nvmは、古いバージョンのNode.jsでコードをテストする必要がある状況でも役立ちます。

 

初心者が公式のNode.jsインストーラーを使用する場合。 macOSユーザーの場合、Homebrewを使用してNode.jsをインストールすることをお勧めします。 Node.jsをインストールしたので、「HelloWorld」を作成します。

 

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

 

最初のNode.jsアプリケーションの最も一般的な例は、単純なWebサーバーです。そのコードは次のとおりです。

const http = require( 'http')

const hostname = '127.0.0.1'

constポート= 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( `サーバーはhttp:// $ {hostname}:$ {port} /`で実行されています)

})

 

このコードを実行するには、ファイルserver.jsに保存し、ターミナルで次のコマンドを実行します。

 

ノードserver.js

 

サーバーを確認するには、ブラウザを開き、アドレスバーhttp://127.0.0.1:3000、つまり、正常に起動した後にコンソールに表示されるサーバーアドレスを入力します。すべてが正常に機能する場合、ページには「HelloWorld」と表示されます。

 

この例を見てみましょう。

 

まず、コードにHTTPモジュールを接続するコマンドが含まれていることに注意してください。

 

Node.jsプラットフォームには、ネットワークを操作するための十分に開発されたメカニズムを含む、優れた標準モジュールセットがあります。

createServer()objectメソッドhttpは、新しいHTTPサーバーを作成して返します。

 

サーバーは、特定のホストの特定のポートでリッスンするように構成されています。サーバーの準備が整うと、対応するコールバックが呼び出され、サーバーが実行中であることが通知されます。

サーバーがリクエストを受信すると、2つのオブジェクトを提供するイベントが発生します。 1つ目はリクエスト(req、http.IncomingMessageオブジェクト)、2つ目はレスポンス(res、http.ServerResponseオブジェクト)です。これらは、HTTPリクエストを処理するための最も重要なメカニズムです。

 

1つ目は、リクエストに関する情報を提供します。この簡単な例では、このデータを使用しませんが、必要に応じて、オブジェクトを使用して、reqyouはリクエストヘッダーとそれに渡されるデータにアクセスできます。

 

2つ目は、リクエストへの応答を作成して送信するために必要です。

 

この場合、リクエストへの応答は次のようになります。まず、プロパティステータスコードを値200に設定します。これは、操作が成功したことを示します。

 

res.statusCode = 200

次に、タイトルContent-Typeを設定します。

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

次に、その内容を引数としてメソッドend()に追加することにより、応答の準備を完了します。

res.end( 'Hello World \ n')

 

Node.jsプラットフォームの周りに強力なエコシステムが形成されていることはすでに述べました。次に、Node.jsの一般的なフレームワークとヘルパーツールについて説明します。

 

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

 

Node.jsは低レベルのプラットフォームです。その開発を簡素化し、プログラマーの生活を楽にするために、膨大な数のライブラリーが作成されました。それらのいくつかは、時間の経過とともに非常に人気があります。これは、よくできていて、調べる価値があると思うライブラリの小さなリストです。

 

Express:このライブラリは、Webサーバーを構築するための非常にシンプルで強力なツールを開発者に提供します。 Expressの成功の鍵は、「ワンストップ」サーバーアーキテクチャのビジョンを課そうとせずに、最小限のアプローチと基本的なサーバー側メカニズムに焦点を当てることでした。

 

流星:これは、JavaScriptアプリケーションを開発し、クライアントとサーバーの両方でコードを使用するために同形のアプローチを採用する強力なフルスタックフレームワークです。 Meteorは、開発者が必要とするすべてのものを含むスタンドアロンツールでした。また、React、Vue、Angularなどのフロントエンドライブラリとも統合されるようになりました。 Meteorは、一般的なWebアプリケーションの開発に加えて、モバイル開発にも使用できます。

 

コア:このWebフレームワークは、Expressの背後にある同じチームによって構築されています。 Expressでの長年の経験に基づいて、シンプルさとコンパクトさを重視して開発されました。このプロジェクトは、コミュニティを分割する可能性のある他のフレームワークメカニズムと互換性のないExpressに大きな変更を加えるという問題の解決策として生まれました。

 

Next.js:このフレームワークは、Reactアプリケーションのサーバー側レンダリングを整理するように設計されています。

 

マイクロ:非同期HTTPマイクロサービスを構築するための非常に軽量なライブラリです。

Socket.io。リアルタイムネットワークアプリケーションを開発するためのライブラリです。

 

実際、Node.jsエコシステムでは、ほとんどすべてのタスクのヘルパーライブラリを見つけることができます。ご想像のとおり、このようなエコシステムを構築するには多くの時間がかかります。 Node.jsプラットフォームは2009年に登場しました。その存在の間に、このプラットフォームを学びたいプログラマーが知っておくべき多くのことが起こりました。

 

Node.jsの簡単な歴史

 

Node.jsは今年9歳です。もちろん、この年齢を、すでに23歳であるJavaScriptの年齢、またはMosaicの出現から数えてわかるように、Webの25歳と比較するとそれほど多くはありません。ブラウザ。

 

9年はテクノロジーにとって短い時間ですが、今ではNode.jsプラットフォームが常に存在していたようです。

 

プラットフォームの初期バージョンのNode.jsは、2年しか経っていませんでした。それでも、Node.jsに関する情報はそれほど多くなかったにもかかわらず、Node.jsは非常に深刻であるとすでに感じることができました。

 

それでは、Node.jsの背後にあるテクノロジーについて説明し、このプラットフォームに関連する主な開発.

 

つまり、JavaScriptは、NetscapeNavigatorブラウザでWebページを操作するためのスクリプト言語としてNetscapeで作成されたプログラミング言語です。

Netscapeのビジネスの一部は、NetscapeLiveWireと呼ばれる環境を含むWebサーバーの販売でした。サーバーサイドJavaScriptを使用して動的なWebページを作成できました。

 

サーバーサイド開発にJSを使用するという考えは、Node.jsよりもはるかに古いものです。このアイデアはJavaScript自体とほぼ同じくらい古いものですが、問題の時点​​では、サーバー側のJSは一般的ではありませんでした。

 

Node.jsプラットフォームが非常に広く普及した主な要因の1つは、それが最初に登場したときです。そのため、数年前、JavaScriptは深刻な言語と見なされ始めていました。これは、GoogleマップやGmailなどのWeb 2.0アプリケーションのおかげで起こりました。これは、最新のWebテクノロジーの力を世界に示しました。

 

今日まで続いているブラウザの競争戦争のおかげで、JavaScriptエンジンのパフォーマンスは大幅に向上しました。主要なブラウザの背後にある開発チームは、ソリューションのパフォーマンスを改善するために毎日取り組んでいます。これは、JavaScript全般に有益な効果をもたらします。

 

そのようなエンジンの1つは、Chromeブラウザーで使用され、Node.jsで使用される前述のV8です。これは、ブラウザ開発者が高性能のJavaScriptコードを求めて努力した結果の1つです。

 

もちろん、Node.jsの人気は、幸運な偶然だけでなく、プラットフォームが適切なタイミングで誕生したという事実に基づいています。彼女は、サーバーサイドJavaScript開発への革新的なアプローチを世界に紹介しました。 Node.jsの歴史における主要なマイルストーンを見てみましょう。

 

2009


  • Node.jsの登場

  • 最初のnpmバリアントを作成します。

 

2010

  • Expressの登場。

  • Socket.ioの登場。

 

2011


  • Npm1.0リリース。

  • LinkedInやUberなどの大企業がNode.jsの使用を開始しました。

 

2012


  • Node.jsの人気の急上昇。

 

2013


  • Node.jsを使用した出版物の最初の主要なプラットフォームであるGhostの登場。

  • コアリリース。

 

2014


  • 今年は劇的なイベントが発生しました。 Node.jsのフォークであるIO.jsプロジェクトが登場しました。その目的は、とりわけ、ES6サポートを導入し、プラットフォームの開発を加速することでした。

 

2015


  • Node.jsFoundationが設立されました。

  • IO.jsとNode.jsをマージします。

  • npmでは、プライベートモジュールを操作できるようになります。

  • Node.js 4を生成します(プラットフォームのバージョン1、2、および3はそうではなかったことに注意してください)。

 

2016


  • 左パッドパッケージインシデント。

  • 糸の出現。

  • Node.js6リリース。

 

2017


  • Npmはセキュリティにもっと注意を払い始めています。

  • Node.js8リリース

  • HTTP / 2のサポートの出現。

  • V8は、ChromeだけでなくNode用にも設計されたJSエンジンとして公式に認められています。

  • 毎週30億npmのダウンロードがあります。

 

2018


  • Node.js10リリース。

  • ESモジュールのサポート。

  • 実験的なmjsのサポート。