Node.js は、オープンソースのクロスプラットフォーム JavaScript ランタイム環境です。これにより、JavaScript を使用してサーバー側アプリケーションを作成できるようになります。 Node.js を使用すると、高パフォーマンスのサーバー側アプリケーションを簡単に開発できます。この記事では、Node.js を使用して MVC アーキテクチャを実装する方法について説明します。
MVC は Model-View-Controller の略称です。これは、アプリケーションを分離し、アプリケーションの保守と拡張を容易にする方法でコードを編成する設計パターンです。
MVC ではコードが非常にモジュール化されているため、アプリケーションのさまざまな部分のリファクタリングと保守が容易になります。 Node.js では、さまざまなフレームワークを使用して MVC アプリケーションを構築できます。この記事では、Express フレームワークを使用して MVC アーキテクチャを実装する方法について説明します。
Express は、Web アプリケーションを迅速に構築するためのツールとミドルウェアを提供する Node.js の人気のあるフレームワークです。 Express フレームワークを使用して MVC を実装できます。
まず、Express フレームワークをインストールする必要があります。コマンド ラインで次のコマンドを使用します。
npm install express --save
次に、テンプレート エンジンをインストールする必要があります。この記事では、テンプレート エンジンとして EJS を使用します。コマンド ラインで次のコマンドを使用します:
npm install ejs --save
基本的なディレクトリ構造は次のとおりです:
- app/ - controllers/ - models/ - views/ - public/ - routes/ - app.js
アプリケーションを 3 つのコンポーネント (コントローラー、モデル、ビュー) に分割します。
コントローラー フォルダーで、コントローラー ロジックを定義します。たとえば、ユーザー関連のリクエストを処理する userController.js というファイルを作成できます。
userController.js ファイルでは、さまざまなオブジェクトとメソッドをエクスポートして、アプリケーションで使用できます。以下に例を示します。
const User = require('../models/user'); const UserController = {}; UserController.index = (req, res) => { // 获取所有用户 User.getAll((err, users) => { if (err) { console.log(err); return; } // 渲染视图 res.render('users/index', { users }); }); }; UserController.show = (req, res) => { // 获取单个用户 User.getById(req.params.id, (err, user) => { if (err) { console.log(err); return; } // 渲染视图 res.render('users/show', { user }); }); }; module.exports = UserController;
上記のコードでは、UserController という名前のオブジェクトを定義し、index と show の 2 つのメソッドをエクスポートします。これらのメソッドはユーザー データを取得し、それをレンダリングのために EJS テンプレート エンジンに渡します。これらのメソッドをアプリケーションのルートで使用して、ユーザーのリクエストを処理できます。
モデル フォルダーで、モデル レイヤーのロジックを定義します。たとえば、ユーザー関連のデータとビジネス ロジックを定義する user.js というファイルを作成できます。
user.js ファイルでは、Node.js の ORM (オブジェクト リレーショナル マッピング) フレームワークを使用してモデルを定義できます。以下に例を示します。
const sql = require('../config/db').pool; const User = {}; User.getAll = (callback) => { sql.query('SELECT * FROM users', (err, users) => { if (err) { callback(err, null); return; } callback(null, users); }); }; User.getById = (id, callback) => { sql.query('SELECT * FROM users WHERE id = ?', [id], (err, user) => { if (err) { callback(err, null); return; } callback(null, user[0]); }); }; module.exports = User;
上記のコードでは、User という名前のオブジェクトをエクスポートし、getAll と getById という 2 つのメソッドを定義します。これらのメソッドは SQL クエリを実行し、結果をコントローラーに返します。
views フォルダーで、EJS ビュー ファイルを定義します。たとえば、すべてのユーザーのデータをレンダリングする、index.ejs というファイルを作成できます。
これは例です:
<h1>All Users</h1> <% if (users && users.length > 0) { %> <ul> <% users.forEach(function(user) { %> <li><a href="/users/<%= user.id %>"><%= user.name %></a></li> <% }); %> </ul> <% } else { %> <p>No users found.</p> <% } %>
上記のコードでは、EJS 構文を使用してすべてのユーザーをレンダリングし、リストを作成します。ユーザー データをコントローラーに渡し、ビューにレンダリングします。
ルート フォルダーで、アプリケーションのルートを定義します。 app.js ファイルでミドルウェアを構成します。以下に例を示します。
const express = require('express'); const app = express(); const router = express.Router(); const UserController = require('./app/controllers/userController'); // 路由 router.get('/', UserController.index); router.get('/users/:id', UserController.show); // 中间件 app.use(express.static('public')); app.use(express.urlencoded({ extended: true })); app.set('view engine', 'ejs'); app.set('views', __dirname + '/app/views'); app.use(router); // 启动服务器 const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`Server listening on port ${PORT}.`); });
上記のコードでは、2 つのルートを定義しました。1 つはすべてのユーザーのデータをレンダリングするルート、もう 1 つは単一ユーザーのデータをレンダリングするルートです。また、EJS テンプレート エンジンを使用して静的ファイルを使用できるようにするミドルウェアも構成しました。最後に、サーバーを起動しました。
この記事では、Express フレームワークを使用して MVC アーキテクチャを実装しました。アプリケーションをコントローラー、モデル、ビューの 3 つのコンポーネントに分割します。また、Node.js ORM フレームワークを使用してモデルを定義し、EJS テンプレート エンジンを使用してビューをレンダリングしました。最後に、ルーティングを使用してユーザーのリクエストを処理し、データをコントローラーとビューに返します。
Node.js の MVC アーキテクチャは、アプリケーションのメンテナンスとスケーリングを大幅に簡素化するのに役立ちます。さらに、Express フレームワークは、Web アプリケーションをより迅速に構築するのに役立つ多くの便利なツールとミドルウェアを提供します。
以上がNodejsはmvcを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。