要チェックな10個の Node.js フレームワーク

本記事は、[10 Node.js Frameworks Worth Checking Out: Express, Loopback, Hapi, and Beyond][RefLink1] の日本語訳です。


# 要チェックな10個のNode.js フレームワーク

![1_yW34BLeoeWa_qBgoUn6-VA.jpeg](https://cdn-images-1.medium.com/max/1600/1*yW34BLeoeWa_qBgoUn6-VA.jpeg)

テクノロジーは急速に変化しているので、開発者たちは新しいテクノロジーを使用し、Web開発のニーズに合わせて、より便利なフレームワークを採用しています。[Node.js][RefLink2] は、アプリ開発にJavaScriptを使うのが好きな開発者達から、大いに注目されています。  
開発者であるあなたは、クライアントサイドとサーバーサイドのスクリプト両方を同じ言語で管理できます。そしてこれは、Nodeの膨大な利用や採用をもたらしました。  
Node.js フレームワークは、Web開発の市場で膨大な需要を獲得し続けており、2019年でも、より多くの機能や利点をもたらし続けています。現在のWeb開発の市場で利用されている [人気プログラミング言語][RefLink3] は多岐にわたりますが、2019年最高の Node.js フレームワークは、このWeb開発における開発プロセスを劇的に変えているのです。

## しかし、深く議論する前に、Node フレームワークとは何かを理解することが重要です

Node.jsは、ブラウザの外部でJavaScriptを実行する、オープンソースかつクロスプラットフォームのJavaScriptランタイム環境です。[JavaScript フレームワーク][RefLink4] のリストを作成する際に、そのことを無視するわけにはいきません。  
JavaScriptは主に、WebページのHTMLに埋め込まれ、ブラウザの JavaScriptエンジンによってクライアントサイドで実行されるスクリプトとして利用されています。  
Node.jsは、開発者がコマンドラインツールを書くために、JavaScriptを利用できるようにしています。サーバーサイドスクリプトの場合、アクセス可能なユーザーのブラウザに動的なWebページが表示される以前にて、その動的なWebページのコンテンツを作成するために必要なスクリプトをサーバーサイドで実行します。その結果、Node.jsは、ある特定の１プログラミング言語で、クライアントサイドとサーバーサイド両方のWebアプリケーション開発をまとめるという、「JavaScript everywhere」のパラダイムを体現しているのです。

## Node.js フレームワークの主な利点

Node.js フレームワークは、同フレームワークが持つ、最高の生産性、高速性、およびスケーラビリティといった驚異的な機能によって、その利用が広まっています。これらすべての機能が、大企業向けのエンタープライズレベルのアプリケーション開発において、Node.jsを最初の選択肢とさせているのです。  
Node.jsは、フロントエンドとバックエンドの両方で同じ言語を使用することを可能にしています。これにより、未知のプログラミング言語を学ぶことや、全てのコード構造やプログラムを実行するために、未知のプログラミング言語で実装を行うストレスから解放されます。  
Node.js フレームワークの手助けによって、さまざまなツールを使用したり、さまざまなガイドラインを参照することができます。また最終的には、多くの時間を節約する方法にもなるため、お勧めしています。そうしたアプローチによって、あなたはコーディングの分野でプロとなることができるのです。
 
主な利点は次のとおりです。

- 高速で機能する
- データストリーミングをサポート
- リアルタイム動作
- 全てのデータベース問い合わせに対応する解決策がある
- 単純なコーディング
- オープンソース
- クロスプラットフォーム
- プロキシサーバーとして併用できる
- より高い生産性
- 同期の問題に対応
- ユーザーとコミュニティにやさしい

**2019年および今後数年間において輝くであろう、上位の Node.js フレームワークたちを見ていきましょう。**


# 1. [AdonisJs][AdonisJsLink]

![1_nUCzbDu_YlSh5qhyNzjjeA.png](https://cdn-images-1.medium.com/max/1600/1*nUCzbDu_YlSh5qhyNzjjeA.png)

AdonisJsは 、すべての主要なオペレーティングシステムで動作する、最も人気のあるNode.js フレームワークの1つです。このフレームワークは、サーバーサイドのWebアプリケーションを作成するための静的なエコシステムを持っているので、ビジネスニーズをターゲットに、どのパッケージを使用するのかを選択することが可能です。最も単純なフレームワークであり、とりわけ開発に焦点を当てています。

## AdonisJsの特徴

- SQLデータベースで構成されているORMをサポート
- アクティブレコードのアイデアに基づいた効率的なSQLクエリ作成
- 簡単なクエリをすばやく作成できる、わかりやすいクエリビルダー
- MongoDBのようなNoSQLデータベースへの良いサポートを提供


# 2. [Express.js][ExpressLink]

![1_qgl1vg3RPQ3NrThODE0mxw.png](https://cdn-images-1.medium.com/max/1600/1*qgl1vg3RPQ3NrThODE0mxw.png)

Express.jsは、最も単純、最も最速で、non-opinionatedのNode.js フレームワークです。これはNode.js上に構築され、サーバーと通信経路を管理するためのミドルウェアとして機能する、シンプルな技術です。  
Node.jsには非同期性があり、またExpress.jsには複数の要求をシームレスに処理できる軽量アプリケーションを開発するための機能があり、Expressテクノロジーの機能に依存しています。

## Express.jsの特徴

- フルカスタマイズ可能
- Node.js Webミドルウェアの標準
- 低い学習曲線
- ブラウザへの注力


# 3. [Hapi.js][HapiLink]

![1_p3YF5k63n3r8tNMxZCdXEA.png](https://cdn-images-1.medium.com/max/1600/1*p3YF5k63n3r8tNMxZCdXEA.png)

Hapi.jsは、アプリケーションのプログラムインターフェイス開発に利用されている、最高のNode.js Webフレームワークです。
Hapi.jsは、Webアプリケーション開発におけるNode.jsフレームワークの最上位にあり、スクリプト全体の管理作業が容易であると、開発者たちから愛されています。

## Hapi.jsの特徴

- 強力な入力バリデーション
- 構成ベースの機能
- キャッシングの実装
- 改善されたエラー処理


# 4. [Meteor.js][MeteorLink]

![1_tgbb4m2UiZ5bOhJumniAWg.png](https://cdn-images-1.medium.com/max/1600/1*tgbb4m2UiZ5bOhJumniAWg.png)

Meteor.jsは、最新のWebおよびモバイルアプリケーションを構築するために使用されており、フルスタックのJavaScriptプラットフォームとして定義されています。Meteor.jsの最も重要な機能は、Web上のすべての変更が、テンプレート上で即座に更新されるという、リアルタイム更新を提供しているということです。  
このフレームワークは、アプリの階層全体のための単純化されたプラットフォームを持っており、同じ言語(JavaScript)になっています。これにより、このフレームワークをサーバーサイド並びにクライアントサイドで、より効率的な方法で機能させられるのです。

## Meteor.jsの特徴

- より大きなプロジェクトを管理するための能力(ケーパビリティ)がある
- 豊富で整理されたドキュメントコミュニティ
- Facebook GraphQLデータスタックを利用している
- 多くの開発者にとって理解が簡単である


# 5. [Sails.js][SailsLink]

![1_AqzpBX37Tl-_1Pmf-uE2dw.png](https://cdn-images-1.medium.com/max/1600/1*AqzpBX37Tl-_1Pmf-uE2dw.png)

Sails.jsは、独自のエンタープライズ品質なNode.jsアプリケーションを開発するのに使用される、もう1つの人気があるNode.js フレームワークです。モダンなアプリに必要とされる対応がされており、最高のアプリを構築するためのすべての機能を持っています。Sails.jsは、スケーラブルなサービス指向アーキテクチャーにアタッチされた、データ駆動型(データドリブン)のAPIで構成されています。

## Sails.jsの特徴

- 数多くの自動ジェネレータがある
- 追加ルーティングが不要
- 様々なフロントエンドテクノロジーとの素晴らしいフロントエンド互換性がある
- Web Socketに対する明確なサポート
- 全データベースに対応


# 6. [Koa.js][KoaLink]

![1_sXyqiwZpsjXall0vR0V6Vg.png](https://cdn-images-1.medium.com/max/1600/1*sXyqiwZpsjXall0vR0V6Vg.png)

Express.jsを作ったチームがKoa.jsを開発しました。Express.jsのギャップを埋めるために、開発されています。Koaは、それぞれ異なるブラウザで動作させるための独自スクリプトやメソッドを持っています。それは、コールバックなしのプログラム動作させることへの助けとなり、力が入れられたエラーハンドリングの提供も受けられることでしょう。

## Koa.jsの特徴

- コールバックを管理し処理するために必要なジェネレータを利用できる
- 強力で効率的なエラー処理プロセスがある
- コンポーネントに基づいたビルディングブロック
- ミドルウェアのカスケーディングとコールバック地獄の放棄


# 7. [LoopBack.js][LoopBackLink]

![1_ymdwQN8Z3fOy-aV93rapxw.png](https://cdn-images-1.medium.com/max/1600/1*ymdwQN8Z3fOy-aV93rapxw.png)

LoopBack.jsは、もう1つの、有名でよく利用されているNode.js フレームワークであり、使いやすいCLIと、動的なAPIエクスプローラーを備えています。必要なスキーマに応じて(またはスキーマが不要な場合でも)、さまざまなモデルを作成するのに役立ちます。MySQL、MongoDB、Oracle、Postgresなど、さまざまなRESTサービスやデータベースとの互換性があります。

## LoopBack.jsの特徴

- 動的なe2eのREST APIsを迅速に作成
- さまざまなデバイスやブラウザの中でより良い接続ができる
- 多様なデータとサービス間における相関性の向上
- クライアントアプリを作成するためのAndroid、iOS、Angular SDKの利用
- オンプレミスでもクラウドでも実行可能


# 8. [Derby.js][DerbyLink]

![1_yUYTqNBlvkJvLJpXNGWWcg.png](https://cdn-images-1.medium.com/max/1600/1*yUYTqNBlvkJvLJpXNGWWcg.png)

Derby.jsはサーバーとクライアント間の、シームレスなデータ同期を提供しています。Derby.jsは、モダンなWebアプリケーションを作成するためのフルスタックNode.js フレームワークとして有名です。Derby.jsは、カスタマイズされたコードを追加し、そして非常に効率的なWebアプリケーションを構築する機会を提供しています。Derby.jsは、いくつかの優れた機能を持っているため、2019年に大きな注目を浴びることでしょう。

## Derby.jsの特徴

- クライアントサイドとサーバーサイド両方のためのMVCアーキテクチャ
- モバイルおよびWebアプリケーションの作成に最適
- WebページやHTMLテンプレートを高速ロードするためのサーバーレンダリングおよび検索エンジンのサポート


# 9. [Total.js][TotalLink]

![1_77ti4a8-RFNyDI-3LGHhaA.png](https://cdn-images-1.medium.com/max/1600/1*77ti4a8-RFNyDI-3LGHhaA.png)

Total.jsは、ほとんどメンテナンスを必要とせず、強力なパフォーマンスと完璧なスケーリングの移行を実現します。ユーザーの要求を満たし、それを世界中で愛用可能で非常に使いやすいNode.js フレームワークにするためにTotal.jsのチーム全体で一生懸命取り組んでいるのです。これは、Total.jsフレームワークが今後数年間で好評を博すだろうことを示しています。

## Total.jsの特徴

- MVCアーキテクチャ
- 高度に拡張可能で非同期のフレームワーク
- RESTfulなルーティングメカニズムをフルサポート
- Web Socketとメディアストリーミングのフルサポート


# 10. [Nest.js][NestLink]

![1_PTHcf4Qw62RzmKTF1Yd3nw.png](https://cdn-images-1.medium.com/max/1600/1*PTHcf4Qw62RzmKTF1Yd3nw.png)

Nest.jsは、プロフェッショナルでスケーラブルなNode.jsサーバーサイドアプリケーションの開発に使用される、Node.js フレームワークの1つです。JavaScriptを使用し、TypeScriptで記述されています。TypeScriptを使用して構築されているため、強力な入力が可能であり、オブジェクト指向プログラミング(OOP)、関数型プログラミング(FP)、および関数型反応性プログラミング(FRP)のすべての要素が組み合わされているのです。

## Nest.jsの特徴

- すぐ利用可能なアプリケーションアーキテクチャを持っている
- 高度にテスト可能でスケーラブルなアプリケーションを簡単に作成
- Nest.jsアプリケーションの生成にNest CLIが使用される


# Node フレームワークを選択する方法

ここで見てきたように、Web開発の市場には非常に多くの Node.js フレームワークがあるので、これは難しい判断です。しかし、この判断は専ら、あなたが関わるプロジェクトやビジネスの要件に依存するものです。それぞれのNode.js フレームワークは、それぞれ専門としているものがあり、速度、学習曲線、コーディング構造、柔軟性、構成など、内容は様々です。

## 主なポイント

テクノロジーの普及は、今日のデジタル世界で大きくなり続けています。これは、フレームワークとさまざまなテクノロジーとの間の競争レベルが、ますます高くなっていることを意味しているのです。Web開発の市場には非常に多くのNode.js フレームワークが用意されていますが、ビジネスの要求を満たすためには、最適なものを選択する必要があります。  
Node.js フレームワークの特徴や機能は、企業向けの、強力でエラーのないアプリケーションの構築を可能にするための、全ての能力を持っていることです。そのために [最高のNode.js開発者を雇う][RefLink5] ことだって出来ます。  
それぞれ特定のフレームワークの詳細について理解するには、多くの研究と分析が必要なことから、最良のNodeJSフレームワークを選択するということは、タフな作業です。さらなる研究をした上で、最高のWebサイトアプリケーションを開発するのに役立つこのフレームワークを選択するかは、あなた次第です。


# 原文記事(引用元)
- [10 Node.js Frameworks Worth Checking Out: Express, Loopback, Hapi, and Beyon][RefLink1]


[RefLink1]:https://medium.freecodecamp.org/10-node-js-frameworks-worth-checking-out-express-loopback-hapi-and-beyond-7b537b590f89
[RefLink2]:https://guide.freecodecamp.org/miscellaneous/get-started-with-nodejs/
[RefLink3]:https://technostacks.com/blog/top-programming-languages
[RefLink4]:https://technostacks.com/blog/javascript-frameworks/
[RefLink5]:https://technostacks.com/hire-node-js-developer/

[AdonisJsLink]:https://adonisjs.com/
[ExpressLink]:https://expressjs.com/
[HapiLink]:https://hapijs.com/
[MeteorLink]:https://www.meteor.com/
[SailsLink]:https://sailsjs.com/
[KoaLink]:https://koajs.com/
[LoopBackLink]:https://loopback.io/
[DerbyLink]:https://derbyjs.com/
[TotalLink]:https://www.totaljs.com/
[NestLink]:https://nestjs.com/