NodeJSアプリケーションのフレームワークを選択するのは難しいかもしれません。 彼らの多くは、自分の強みと弱みを持っています。 一日の終わりに、選択するフレームワークは、プログラミング環境とアプリに何をしたいかによって異なります。 いくつかのフレームワークは軽量で高速であり、アプリの構築方法を気にしません。 他の人はより多くの機能を持っていますが、エンジンを使用して特定の方法でコードを整理するように強制するかもしれません。
この記事の目的は、最も人気のあるノードフレームワークのいくつかを比較して、最終的にどちらがプロジェクトに適しているかを決定できるようにす
フレームワークとは何ですか?
一般的に言えば、フレームワークはアプリケーションのサポートシステムです。 Nodeは、ネットワークやファイルシステムなど、アプリが必要とするものとインターフェイスするためのツールセットを提供します。 フレームワークは、これらの機能を拡張し、開発のより複雑な側面のいくつかを抽象化します。 たとえば、コード内のハンドラーがネットワークから要求オブジェクトを受け取る場合があります。 フレームワークは、ハンドラーに到達する前にこの要求オブジェクトを傍受し、作業を容易にするためにいくつかの追加のメソッドと機能を追加するこ
ノードフレームワークにはいくつかのフレーバーがあり、それぞれが異なるプログラミング体験を提供します。
MVCフレームワーク
MVC(Model View Controller)アーキテクチャは、アプリケーションロジックを三つの部分に分割する便利な設計パターンです。 MVCアーキテクチャをサポートするノードフレームワークは、コードの整理方法についてあまり時間をかけたくない場合に便利です。
Express
ノードフレームワークのリストはそれなしでは完全ではないので、Expressを最初に邪魔にならないようにすることもできます。 Expressは、47.5K、1.8K、7.7K forksが証明されるため、人気のあるフレームワークの君臨チャンピオンです。 これだけでは優れた選択肢になります。 それは堅牢で、十分にテストされており、あなたをサポートし、質問に答えることができるitを維持し、作業する大規模なコミュニティがあります。
Expressは、”ノードのための高速で、独断的で、ミニマリストフレームワークとして自分自身を売り込んでいます。”パフォーマンスと必要なものだけを提供することに焦点を当てています。 このフレームワークは、要求を処理するための広範なミドルウェアチェーンを可能にするのではなく、独自の機能をほとんど提供しません。
はじめに
サーバーを作成します。jsまたはアプリ。プロジェクトのルートにjsファイルを追加し、次のコードを追加します
const express = require('express')const app = express()app.get('/', function (req, res) { res.send('Hello World')})app.listen(3000)
node ./server.js
でサーバーを実行し、ブラウザでlocalhost:3000にアクセスして応答を確認します。
帆
帆は安定性と使いやすさを強調し、Expressよりも箱から出してはるかに多くを提供します。 これは、認証、データベースインタフェース、Websocketとテンプレートのための独自のORMのサポートを提供し、完全なスタック方向に傾いています。 つまり、提供されているORM(Waterline)およびテンプレートエンジン(EJS)を使用する必要がありますが、Consolidateと呼ばれる拡張機能は、Expressと互換性のある他のテンプレートエン)SailsはBlueprintsと呼ばれる印象的なAPIジェネレータも備えており、最小限の手動コーディングでAPIエンドポイントを生成することができます。 Sailsのドキュメントから:
…ユーザーを作成する場合。あなたのプロジェクトのjsモデルファイル、そして青写真を有効にすると、すぐに/user/createを訪問することができますか?name=joeはユーザーを作成し、/userにアクセスしてアプリのユーザーの配列を表示します。 すべてのコードの単一行を書くことなく!
Sailsは長い間存在しており、Github stars、views、forksによると最も人気のあるフレームワークの一つです。 多くの大企業は帆に依存しているため、企業レベルのアプリケーションをサポートするのに十分な堅牢性を備えています。
はじめに
Sailsは、新しいアプリを非常に迅速に起動して実行するための強力なコマンドラインインターフェイスを提供します
npm install -g sailssails new <project_name>
組み込みの認証とロ Sailsが基本の設定を完了したら、プロジェクトフォルダにcdを入れて
sails lift
を実行すると、localhost:1337に移動して生成されたホームページを見ることができます。
フルスタックフレームワーク
フルスタックフレームワークは、クライアントからサーバー、データベースまで、アプリケーション全体の構造と機能を提供します。 フルスタックフレームワークには、テンプレートエンジン、WebSocketライブラリ、Ormなど、多くの機能が付属しています。 チームとアプリケーションの規模によっては、これらの機能は非常に便利であるか、必要以上のものになる可能性があります。
Meteor
MeteorはGithub上で二番目に星付き、表示され、フォークされたノードフレームワークです。 コミュニティは活気に満ちており、ドキュメントは広範です。 ドキュメントには、ベストプラクティス、推奨スタイルガイド、多くのチュート MeteorにはnpmとAtmosphereと呼ばれる独自のパッケージマネージャーがバンドルされており、Mongoデータストアの組み込みサポートとReact、Angular、Blazeとの簡単な統合が含まれています。 それは表現するか、または帆より独断的である。
Meteorは、サーバー側のレンダリングではなく”ワイヤー上のデータ”を使用するため、サーバーはHTMLではなくデータを送信し、クライアントはそれをレンダリングします。 Meteorビルドツールは、Cordovaを介してモバイルのための箱から出してサポートを提供し、ホットリロードをサポートしています。
はじめに
Meteorのビルドツールは、アプリを作成、コンパイル、実行するものです。 Curl経由でダウンロードします。
curl https://install.meteor.com/meteor create <project_name>
これにより、/clientディレクトリと/serverディレクトリに編成された基本的なJavascriptアプリで必要なすべてのファイル構造が作成されます。 プロジェクトルートにcdを入れ、
meteor run
を実行すると、アプリはlocalhostで実行されるはずです:3000
REST API Frameworks
アプリケーションのクライアント側がカバーされている場合は、スタックのサーバー部分のフレームワークが必要な場合があります。 この場合、単純なREST APIフレームワークを使用して、サーバーへのCRUD要求を処理することができます。 あなたはExpressでこれを行うことができますが、この特定のケースを処理するためのフレームワークもあります。
Loopback
Loopbackは、Githubによると、二番目に人気のあるREST APIフレームワークです。 IBMによって開発された、それはあなたがすぐにApiとマイクロサービスを作成することができますExpressに基づいて、”高度に拡張可能な、オープンソースのノードフ”これは、プロジェクトを生成し、簡単にコントローラやモデルを作成するためのコマンドラインツールが付属しており、簡単な認証と承認のためのアドオ Apiとしてのみ使用されることを意図しているため、ビューやテンプレート、または専用のORMはサポートされていません。
Loopbackを使用すると、最小限のコーディングで数分で動的APIを作成できます。 開発サイクルは非常に速く、ファイル構造はきれいで便利です。 セットアップには、eslint、prettier、mocha、dockerをすぐに設定するオプションが含まれています。
はじめに
npm install -g @loopback/clilb4 <project_name>
アプリのセットアップ方法についていくつかの質問に答えるように求められ、ファイル構造が足場になります。 新しいルートを作成するには、
lb4 controller
を実行してプロンプトに応答します。 コントローラファイルが作成されたら、Loopback get関数をインポートし、それを使用してコントローラ
import {get} from '@loopback/rest';export class HelloController { @get('/hello') hello(): string { return 'Hello world!'; }}
Summary:Bestノードを設定できます。jsフレームワーク
フレームワーク | パフォーマンス | コミュニティ | 使いやすさ | ベスト |
---|---|---|---|---|
エクスプレス | 高速。 ノードの生の速度のint彼の方法を取得するために少しので、何も追加しません。 | 質問の多くは尋ねられ、答えた。 | あなたがそれを作りたいと思うほど難しい。 | 大小のプロジェクト。 また、Nodeで作業する方法を学ぶのに最適な方法です。 |
帆 | 中。 パフォーマンスよりも開発者の効率を向上させることに焦点を当てています。 | 長い時間の周りされているよく確立されたプロジェクト。 | 青写真は、最小限のコーディングでAPIを起動して実行することを非常に簡単にします。 | すぐに地面から降りる必要がある中規模のプロジェクト。 |
メテオ | 焦点は非常に迅速にプロジェクトを立ち上げ/プロトタイピングにあります。 | 小さいながらも活気に満ちて成長しています。 | 青写真は、最小限のコーディングでAPIを起動して実行することを非常に簡単にします。 | すぐに小さなプロジェクトを立ち上げます。 新しいツールで手を汚す。 |
ループバック | 中。 | 小さいですが、それを愛する人は本当にそれを愛しています。 | 簡単ですが、フロントほど多くは提供しません。 | 独立したフロントエンド用のエンタープライズ規模のAPIの構築。 |
結論
選択したフレームワークはニーズに応じて変更されるため、決定的な”最良の”ノードフレームワークを選択することは困難です。 独自のライブラリとサードパーティの統合を自由に選択したい場合は、ExpressまたはLoopbackが最善の策になる可能性があります。 しかし、あなたのチームが数日のうちに新しいアプリを前面に立てたい場合は、MeteorまたはSailsがあなたのニーズに合っているかもしれません。
この記事で説明したフレームワーク以外にも多くのフレームワークがあり、アプリやチームにとって何が機能するかを知る最良の方法は、ドキュメントを読んでいくつか試してみることです。
- JavaScriptでAPIを使用する方法
- Nodeを使用してAPI
- を作成する方法。jsとExpress。js
- Nodeを使用して天気アプリを構築する方法。NodeとExpressを使用してGraphQLサーバーをセットアップする方法