node.js MVCアプリケーションの構築と構造の方法
複雑なアプリケーションを構築する場合、アーキテクチャ設計はコードの品質と同じくらい重要です。コードがよく書かれているが、組織構造が良好である場合でも、複雑さが増すにつれて維持とスケーリングが非常に困難になります。したがって、ベストプラクティスは、プロジェクトが開始される前にアーキテクチャを計画し、プロジェクトの目標をガイドし、情報に基づいた選択を行うことです。
Ruby on Railsなどのフレームワークとは異なり、node.jsには、特定のアーキテクチャとコード組織を実施するための事実上の標準フレームワークがありません。これにより、完全なnode.js Webアプリケーションを構築するときにアーキテクチャの選択が比較的無料になりますが、課題も追加されます。このチュートリアルでは、MVCアーキテクチャを使用して基本的なメモ削減アプリケーションを構築し、node.js 'hapi.jsフレームワーク、sqliteデータベース(sequelize.jsを介して動作)、および効率的なテンプレートエンジンを使用する方法を示します。発達。
コアポイント:MVC(Model-View-Controller)アーキテクチャを使用してnode.jsアプリケーションを効率的に整理して、保守性とスケーラビリティを向上させます。
- npmでプロジェクトを初期化し、依存関係を管理するために ファイルを作成します。
-
package.json
hapi.jsフレームワークを使用してサーバーを構築し、SQLiteデータベースとSequelize.jsを使用してデータを管理します。 - node.jsルートを定義し、アプリケーションの機能を明確にし、各ルートが正しいHTTPメソッドとハンドラーに関連付けられていることを確認します。
- PUGテンプレートエンジンを使用してビューを作成して、HTTP応答をより読みやすく構造化します。
- hapi.jsの不活性プラグインを使用して静的ファイルサービスを提供し、CSSおよびJavaScriptファイルを効率的に管理します。
- MVCとは何ですか?
Model-View-Controller(MVC)は、おそらく最も人気のあるアプリケーションアーキテクチャの1つです。 MVCパターンは、グラフィカルユーザーインターフェイスアプリケーションの組織的な問題を解決するために、SmallTalk言語向けにPARCで設計されていました。もともとデスクトップアプリケーションで使用されていましたが、この概念はWeb開発に成功裏に適用されています。
単純に言えば、MVCアーキテクチャには次のものが含まれます
モデル:データベースの処理またはデータ関連の機能の一部。
- view(view):ユーザーが見るすべて - ページがクライアントに送信されます。
- コントローラー:
Webサイトのロジック、およびモデルとビューの間のブリッジ。コントローラーはモデルを呼び出してデータを取得し、データをビューに渡し、最終的にユーザーに送信します。 このアプリケーションにより、プレーンテキストノートの作成、表示、編集、削除が可能になります。機能はシンプルですが、堅実なアーキテクチャにより、将来的に新しい機能を簡単に追加できます。 - このチュートリアルでは、マシンにnode.jsの最新バージョンをインストールしたことを前提としています。そうでない場合は、関連するチュートリアルを参照してください。 最終アプリケーションコードはGitHubリポジトリにアップロードされており、完全なプロジェクト構造を表示できます。
基礎 node.jsアプリケーションを構築する最初のステップは、すべての依存関係とスクリプトを使用してpackage.json
ファイルを作成することです。このファイルは、npmのinit
コマンドを使用して自動的に生成できます。
mkdir notes-board cd notes-board npm init -y
ファイルがあります。 package.json
注:これらのコマンドに慣れていない場合は、NPM Getting Guideをご覧ください。
次に、hapi.jsフレームワークをインストールします:このコマンドはhapi.jsをダウンロードし、
npm install @hapi/hapi@18.4.0
package.json
次に、エントリファイルを作成します - すべてを使用してWebサーバーを起動します。アプリケーションディレクトリに
ファイルを作成し、次のコードを追加します。
server.js
これがアプリケーションの基礎です。まず、厳密なモードを使用し、依存関係を導入し、接続ポートを3000に設定します(最初のルートは任意の数字になります。 world! "メッセージで十分です。最後に、
"use strict"; const Hapi = require("@hapi/hapi"); const Settings = require("./settings"); const init = async () => { const server = new Hapi.Server({ port: Settings.port }); server.route({ method: "GET", path: "/", handler: (request, h) => { return "Hello, world!"; } }); await server.start(); console.log(`Server running at: ${server.info.uri}`); }; process.on("unhandledRejection", err => { console.log(err); process.exit(1); }); init();
server.start()
ストレージ設定
ベストプラクティスは、構成変数を専用ファイルに保存することです。このファイルは、各キーに独立した環境変数が割り当てられているデータを含むJSONオブジェクトをエクスポートしますが、代替値を忘れないでください。 このファイルでは、環境(開発や生産など)に応じて、異なる設定を持つこともできます。たとえば、開発目的でSQLiteのメモリインスタンスを使用できますが、実稼働環境で実際のSQLiteデータベースファイルを使用します。
現在の環境に基づいて設定を選択するのは非常に簡単です。ファイルに開発または生産を含むENV変数もあるため、データベース設定を取得するために以下を実行できます。
したがって、Env変数が開発である場合、dbsettingsにはインメモリデータベースの設定が含まれます。さらに、開発目的のためにローカル環境変数を保存できる
ファイルのサポートを追加できます。これは、Dotenvのようなnode.jsパッケージを使用して実行できます。Dotenvは、プロジェクトのrootにファイルを読み取り、見つかった値を環境に自動的に追加します。
const dbSettings = Settings[Settings.env].db;
注:
ファイルも使用することにした場合は、を使用してパッケージをインストールし、.env
に追加して、機密情報の投稿を避けてください。 .env
ファイルは次のとおりです
注:このプロジェクトは、ノードv12.15.0でテストされました。エラーが発生した場合は、更新されたバージョンがインストールされていることを確認してください。 (次の手順、スペースの制限により、次のコンテンツを簡単に要約します。具体的な実装の詳細については、元のテキストを参照してください) ルートの定義:get、投稿、配置、および削除するファイルのアプリケーションのルートを定義して、メソッドの作成、読み取り、更新、削除を処理するメソッドを削除します。 モデルの構築: コントローラーを構築します:ルーティングリクエストを処理するコントローラーを作成します。 ホームページの処理、 ビルディングビュー:PUGテンプレートエンジンを使用してビューを作成します。 メモのリストを表示します Service Static Files: クライアントjavaScriptコードを書き込み、モーダルウィンドウを表示/非表示にし、ajaxを使用してフォームを送信します。
このチュートリアルは、hapi.jsおよびMVCアーキテクチャに基づいた基本的なメモ削減アプリケーションを構築します。洗練される詳細(入力検証、エラー処理など)はまだたくさんありますが、これはnode.jsアプリケーションの学習と構築の基盤を提供します。 これに基づいて、ユーザー認証、より複雑なUI、その他の機能を追加できます。 以上がnode.js MVCアプリケーションの構築と構造の方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。.env
npm install dotenv
次に、次のコマンドを実行して、Webブラウザーで.gitignore
に移動することでアプリケーションを開始できます。mkdir notes-board
cd notes-board
npm init -y
lib/routes.js
Note
で定義します。 lib/models/note.js
lib/controllers/home.js
メモに関連するCRUD操作の処理。 lib/controllers/note.js
lib/views/home.pug
個々のメモの詳細を表示します。 lib/views/note.pug
ノートコンポーネントを定義します。 lib/views/components/note.pug
server.js
routes.js

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます
