MVC NodeJS

Kiến trúc tốt là chìa khóa cho bất kỳ thành công phát triển phần mềm nào. Điều này không chỉ đảm bảo quy trình phát triển dễ dàng giữa các nhóm mà còn cả khả năng mở rộng của ứng dụng. Nó đảm bảo rằng bất cứ khi nào cần thay đổi mới, các nhà phát triển sẽ không gặp khó khăn trong việc tái cấu trúc các khía cạnh khác nhau của mã

Kiến trúc MVC

Có nhiều mẫu kiến ​​trúc trong các ngôn ngữ khác nhau như MVT trong Python, MVVM trong Android và MVC trong các ứng dụng JavaScript

Kiến trúc MVC chia toàn bộ ứng dụng thành ba phần;

Mô hình

Phần này xác định dữ liệu của chúng tôi. Đó là nơi đặt các lược đồ và mô hình của chúng tôi, tôi. e bản thiết kế dữ liệu ứng dụng của chúng tôi

Khung nhìn

Điều này bao gồm các mẫu và bất kỳ hình thức tương tác nào khác mà người dùng có với ứng dụng. Đó là nơi dữ liệu được xác định bởi Model của chúng tôi được trình bày cho người dùng

Bộ điều khiển

Logic nghiệp vụ được xử lý trong phần này. Điều này bao gồm việc đọc và ghi cơ sở dữ liệu và bất kỳ sửa đổi nào khác mà dữ liệu trải qua. Điều này kết nối ModelView

Tái cấu trúc thành MVC

Với ý nghĩ đó, chúng ta có thể nhập mã của mình và bắt đầu cấu trúc lại nó để tuân theo mẫu MVC. Mã cơ sở (trước khi thay đổi) có thể được tìm thấy trên Github

Để chuyển ứng dụng của chúng tôi sang mẫu MVC, chúng tôi sẽ cần bộ điều khiển. Lưu ý rằng chúng tôi đã có các mô hình của mình, tôi. e các tệp mô hình trong thư mục models và các chế độ xem của chúng tôi sẽ là các tệp định tuyến trong thư mục

const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
0, vì chúng tôi không hiển thị bất kỳ trang nào khi người dùng tương tác với các điểm cuối API

Hãy tiếp tục và tạo một thư mục có tên là

const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
1 ở cấp cơ sở. Sau đó, thêm một tệp có tên
const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
2 sẽ xử lý tất cả logic của tuyến đường xác thực của chúng tôi

MVC NodeJS

Tiếp theo, thêm các bản xuất sau vào tệp
const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
2. Ở đây chúng tôi đang xuất hai chức năng

exports.login = (req, res) => {

}

exports.signup = (req, res) => {

}

Các hàm

const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
4 và
const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
5 sẽ có quyền truy cập vào phần yêu cầu và phản hồi của các yêu cầu của chúng tôi và chúng tôi sẽ xử lý quy trình đăng ký và đăng nhập tại đây

Trong bộ điều khiển, nhập mô hình

const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
6 và
const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
7. Sau đó di chuyển toàn bộ các hàm băm mật khẩu và các phương thức CRUD mongoose sang các hàm tương ứng trong tệp điều khiển

MVC NodeJS

Nhập bộ điều khiển vào tệp
const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
8. Điều này sẽ cho phép bạn truy cập các chức năng đã xuất. Sau đó, nơi có triển khai
const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
4 và
const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);
5, hãy gọi các phương thức của bộ điều khiển tương ứng

const controller = require('../controllers/auth.controller')

router.get('/login', controller.login);

router.post('/signup', controller.signup);

Trong trường hợp bạn không nhận thấy, chúng tôi đã không di chuyển phương thức

const jwt = require('jsonwebtoken')
const tokenSecret = process.env.TOKEN_SECRET

exports.generateToken = (user) => jwt.sign({data: user}, tokenSecret, {expiresIn: '24h'})
1. Điều này là do chúng tôi có thể đặt nó trong tệp riêng của nó để bạn có thể sử dụng lại nó trong tất cả các bộ điều khiển. Vì vậy, tôi sẽ tạo một thư mục cấp gốc có tên là
const jwt = require('jsonwebtoken')
const tokenSecret = process.env.TOKEN_SECRET

exports.generateToken = (user) => jwt.sign({data: user}, tokenSecret, {expiresIn: '24h'})
2 và tạo một tệp có tên là
const jwt = require('jsonwebtoken')
const tokenSecret = process.env.TOKEN_SECRET

exports.generateToken = (user) => jwt.sign({data: user}, tokenSecret, {expiresIn: '24h'})
3. Và ở đây là nơi tôi sẽ đặt hàm
const jwt = require('jsonwebtoken')
const tokenSecret = process.env.TOKEN_SECRET

exports.generateToken = (user) => jwt.sign({data: user}, tokenSecret, {expiresIn: '24h'})
1 của mình và bất kỳ hàm nào có thể tái sử dụng khác

const jwt = require('jsonwebtoken')
const tokenSecret = process.env.TOKEN_SECRET

exports.generateToken = (user) => jwt.sign({data: user}, tokenSecret, {expiresIn: '24h'})

Sau đó, trong bộ điều khiển của tôi, tôi sẽ nhập tệp

const jwt = require('jsonwebtoken')
const tokenSecret = process.env.TOKEN_SECRET

exports.generateToken = (user) => jwt.sign({data: user}, tokenSecret, {expiresIn: '24h'})
2 để truy cập các chức năng đã xuất

MVC NodeJS

Và cùng với đó, bạn có một số kiến ​​trúc MVC rõ ràng. Điều này tuân theo nguyên tắc “phân tách các mối quan tâm”, trong đó chúng tôi tách mã của mình thành các đơn vị rất nhỏ có thể được xử lý độc lập. Đây là một khía cạnh quan trọng cần tuân theo, đặc biệt là trong một nhóm, để cho phép cộng tác suôn sẻ

Mã được tái cấu trúc hoàn toàn có thể được tìm thấy trên Github

Lưu trữ cạnh

Nút của phần. js Edge Hosting trao quyền cho các nhóm DevOps để chạy Node quan trọng. js ở biên mạng để có kết quả cực nhanh với tính năng bảo vệ AppSec cấp doanh nghiệp

Nút js có hỗ trợ MVC không?

MVC là từ viết tắt của Model-View-Controller. Nó là một mẫu thiết kế cho các dự án phần mềm. Nó được sử dụng chủ yếu bởi các nhà phát triển Node và cả những người dùng C#, Ruby, PHP framework.

MVC hoạt động như thế nào trong nút js?

Kiến trúc MVC chia toàn bộ ứng dụng thành ba phần; . .
Mô hình. Phần này xác định dữ liệu của chúng tôi. .
Khung nhìn. Điều này bao gồm các mẫu và bất kỳ hình thức tương tác nào khác mà người dùng có với ứng dụng. .
Bộ điều khiển. Logic nghiệp vụ được xử lý trong phần này

MVC có được sử dụng với Express không?

Khung Model-View-Controller có một mẫu thiết kế quan trọng phân tách logic ứng dụng thành ba phần. mô hình, chế độ xem và bộ điều khiển. Sự tách biệt làm cho quá trình phát triển web trở nên dễ dàng, hiệu quả và có thể mở rộng. Express JS và Adonis JS là hai trong số các khung MVC phổ biến nhất dựa trên Node .

Nút MVC Express là gì?

MVC là viết tắt của Mô hình, Chế độ xem, Trình điều khiển là một mẫu kiến ​​trúc phân tách một ứng dụng thành ba thành phần logic chính. mô hình, khung nhìn và bộ điều khiển. Mỗi một trong những thành phần này được xây dựng để xử lý các khía cạnh phát triển cụ thể của một ứng dụng.