nodejs는 mvc를 구현합니다.

王林
풀어 주다: 2023-05-17 10:23:37
원래의
884명이 탐색했습니다.

Node.js는 오픈 소스, 크로스 플랫폼 JavaScript 런타임 환경입니다. 이를 통해 JavaScript를 사용하여 서버측 애플리케이션을 작성할 수 있습니다. Node.js를 사용하면 고성능 서버측 애플리케이션을 쉽게 개발할 수 있습니다. 이 기사에서는 Node.js를 사용하여 MVC 아키텍처를 구현하는 방법을 다룹니다.

  1. MVC란 무엇인가요?

MVC는 Model-View-Controller의 약어입니다. 애플리케이션을 분리하고 애플리케이션의 유지 관리 및 확장을 쉽게 만드는 방식으로 코드를 구성하는 디자인 패턴입니다.

  • 모델: 모든 애플리케이션 데이터 및 관련 비즈니스 로직을 포함합니다.
  • View: 모델에서 데이터를 가져와 사용자에게 표시하는 사용자 인터페이스입니다.
  • 컨트롤러: 사용자 인터페이스와 비즈니스 로직 간의 상호 작용을 처리하고 결과를 사용자 인터페이스에 반환합니다. 라우팅, 미들웨어, 컨트롤러 등의 미들웨어 역할을 할 수 있습니다.

MVC는 코드를 매우 모듈식으로 만들어 애플리케이션의 다양한 부분을 쉽게 리팩터링하고 유지 관리할 수 있도록 해줍니다. Node.js에서는 다양한 프레임워크를 사용하여 MVC 애플리케이션을 구축할 수 있습니다. 이 기사에서는 Express 프레임워크를 사용하여 MVC 아키텍처를 구현하는 방법에 대해 설명합니다.

  1. Express 프레임워크를 사용하여 MVC를 구현하는 방법은 무엇입니까?

Express는 웹 애플리케이션을 빠르게 구축하기 위한 도구와 미들웨어를 제공하는 인기 있는 Node.js 프레임워크입니다. Express 프레임워크를 사용하여 MVC를 구현할 수 있습니다.

먼저 Express 프레임워크를 설치해야 합니다. 명령줄에서 다음 명령을 사용하세요.

npm install express --save
로그인 후 복사

다음으로 템플릿 엔진을 설치해야 합니다. 이 글에서는 EJS를 템플릿 엔진으로 사용하겠습니다. 명령줄에서 다음 명령을 사용하세요.

npm install ejs --save
로그인 후 복사

기본 디렉터리 구조는 다음과 같습니다.

- app/
    - controllers/
    - models/
    - views/
- public/
- routes/
- app.js
로그인 후 복사

애플리케이션을 컨트롤러, 모델, 뷰의 세 가지 구성 요소로 나눕니다.

  1. Controllers

컨트롤러 폴더에서 컨트롤러 로직을 정의합니다. 예를 들어 사용자 관련 요청을 처리하는 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라는 두 가지 메서드를 내보냅니다. 이러한 메소드는 사용자 데이터를 가져와 렌더링을 위해 EJS 템플릿 엔진에 전달합니다. 우리는 애플리케이션의 경로에서 이러한 메서드를 사용하여 사용자 요청을 처리할 수 있습니다.

  1. Model

models 폴더에서는 모델 레이어의 로직을 정의합니다. 예를 들어, 사용자 관련 데이터와 비즈니스 로직을 정의하는 user.js라는 파일이 있을 수 있습니다.

user.js 파일에서 Node.js의 ORM(Object Relational Mapping) 프레임워크를 사용하여 모델을 정의할 수 있습니다. 예는 다음과 같습니다.

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라는 두 가지 메서드를 정의합니다. 이러한 메서드는 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. Routing

경로 폴더에서 애플리케이션의 경로를 정의합니다. 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}.`);
});
로그인 후 복사

위 코드에서는 두 가지 경로를 정의했습니다. 하나는 모든 사용자에 대한 데이터를 렌더링하고 다른 하나는 단일 사용자에 대한 데이터를 렌더링하는 것입니다. 또한 EJS 템플릿 엔진을 사용하고 정적 파일을 사용할 수 있는 미들웨어도 구성했습니다. 드디어 서버를 시작했습니다.

  1. 요약

이 글에서는 Express 프레임워크를 사용하여 MVC 아키텍처를 구현했습니다. 우리는 애플리케이션을 컨트롤러, 모델, 뷰의 세 가지 구성 요소로 나눕니다. 또한 Node.js ORM 프레임워크를 사용하여 모델을 정의하고 EJS 템플릿 엔진을 사용하여 뷰를 렌더링했습니다. 마지막으로 라우팅을 사용하여 사용자 요청을 처리하고 데이터를 컨트롤러와 뷰로 다시 전달합니다.

Node.js의 MVC 아키텍처는 애플리케이션 유지 관리 및 확장을 크게 단순화하는 데 도움이 됩니다. 또한 Express 프레임워크는 웹 애플리케이션을 더 빠르게 구축하는 데 도움이 되는 많은 유용한 도구와 미들웨어를 제공합니다.

위 내용은 nodejs는 mvc를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!