Nodejsはmvcを実装します

王林
リリース: 2023-05-17 10:23:37
オリジナル
918 人が閲覧しました

Node.js は、オープンソースのクロスプラットフォーム JavaScript ランタイム環境です。これにより、JavaScript を使用してサーバー側アプリケーションを作成できるようになります。 Node.js を使用すると、高パフォーマンスのサーバー側アプリケーションを簡単に開発できます。この記事では、Node.js を使用して MVC アーキテクチャを実装する方法について説明します。

  1. MVC とは何ですか?

MVC は Model-View-Controller の略称です。これは、アプリケーションを分離し、アプリケーションの保守と拡張を容易にする方法でコードを編成する設計パターンです。

  • モデル: すべてのアプリケーション データと関連するビジネス ロジックが含まれます。
  • View: モデルからデータを取得してユーザーに表示するユーザー インターフェイス。
  • Controller: ユーザー インターフェイスとビジネス ロジック間の対話を処理し、結果をユーザー インターフェイスに返します。ルーティング、ミドルウェア、コントローラーなどのミドルウェアとして機能します。

MVC ではコードが非常にモジュール化されているため、アプリケーションのさまざまな部分のリファクタリングと保守が容易になります。 Node.js では、さまざまなフレームワークを使用して MVC アプリケーションを構築できます。この記事では、Express フレームワークを使用して MVC アーキテクチャを実装する方法について説明します。

  1. 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 つのコンポーネント (コントローラー、モデル、ビュー) に分割します。

  1. Controller

コントローラー フォルダーで、コントローラー ロジックを定義します。たとえば、ユーザー関連のリクエストを処理する 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 テンプレート エンジンに渡します。これらのメソッドをアプリケーションのルートで使用して、ユーザーのリクエストを処理できます。

  1. モデル

モデル フォルダーで、モデル レイヤーのロジックを定義します。たとえば、ユーザー関連のデータとビジネス ロジックを定義する 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 クエリを実行し、結果をコントローラーに返します。

  1. Views

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 構文を使用してすべてのユーザーをレンダリングし、リストを作成します。ユーザー データをコントローラーに渡し、ビューにレンダリングします。

  1. ルート

ルート フォルダーで、アプリケーションのルートを定義します。 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 テンプレート エンジンを使用して静的ファイルを使用できるようにするミドルウェアも構成しました。最後に、サーバーを起動しました。

  1. 概要

この記事では、Express フレームワークを使用して MVC アーキテクチャを実装しました。アプリケーションをコントローラー、モデル、ビューの 3 つのコンポーネントに分割します。また、Node.js ORM フレームワークを使用してモデルを定義し、EJS テンプレート エンジンを使用してビューをレンダリングしました。最後に、ルーティングを使用してユーザーのリクエストを処理し、データをコントローラーとビューに返します。

Node.js の MVC アーキテクチャは、アプリケーションのメンテナンスとスケーリングを大幅に簡素化するのに役立ちます。さらに、Express フレームワークは、Web アプリケーションをより迅速に構築するのに役立つ多くの便利なツールとミドルウェアを提供します。

以上がNodejsはmvcを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート