Controller là một thành phần do chúng ta định nghĩa ra thôi, phía bên Express mình không thấy nhắc đến. Ta áp dụng mô hình MVC vào trong khóa này và controller là một thành phần trong nó. Cùng mình tìm hiểu về controller ngay bây giờ nào.

Giới thiệu

Mô hình MVC

MVC là từ viết tắt bởi 3 từ Model – View – Controller. Đây là mô hình thiết kế sử dụng trong kỹ thuật phần mềm. Mô hình source code thành 3 phần, tương ứng mỗi từ. Mỗi từ tương ứng với một hoạt động tách biệt trong một mô hình.

Nói đơn giản:

  • Model: thành phần có chức năng làm việc với database. Là cầu nối giữa giữa data và 2 thành phần kia. Database ở đây là csdl hoặc đơn giản hơn là file xml bình thường. Model thể hiện rõ các thao tác với cơ sở dữ liệu như cho phép xem, truy xuất, xử lý dữ liệu,…
  • View: phần giao diện (theme) dành cho người dùng. Nơi mà có thể lấy được thông tin dữ liệu từ controller trả về. Hoặc gửi yêu cầu lên.
  • Controller: Nơi tiếp nhận xử lý các yêu cầu người dùng đưa đến. Từ đó, controller đưa ra phản hồi phù hợp đến người dùng.

Trong quá trình học tập, chúng ta chưa thấy được sự tiện lợi cũng như những ưu điểm mà mô hình mang lại. Còn cảm thấy khá mất công khi phải tự tay setup.
Nhưng các bạn an tâm. Nếu một thứ gì đó không sinh lợi sẽ bị đào thải, và không tự nhiên mà mô hình MVC là vô cùng phổ biến.

Các bạn tìm đọc thêm tài liệu để có thể hiểu rõ hơn về mô hình này và những lợi ích mà nó mang lại.

Controller

Bài trước mình đã giới thiệu về Router. Router đảm nhận việc nhận những request đến, sau đó gọi một function để xử lý yêu cầu. Bài trước thì mình viết trực tiếp vào phần khai báo router luôn.

Nhưng thực tế, phần Router chỉ dùng để định nghĩa thôi, còn phần xử lý logic thì ta tách ra một file riêng gọi là Controller – thành phần trong mô hình MVC. Vì vậy, mình sẽ tách phần xử lý logic ra file riêng, phần logic này là các function á. Mình sẽ tạo file controller.js trong folder controllers để dễ quản lý. Bây giờ cần làm ở file này là exports các function ra và bên router cần thì sẽ gọi đến.

ví dụ:

Mình có controller, mình sẽ exports ra những function được khai báo:

function getIndex(req, res) {
    res.send("hello world");
}

export {
    getIndex,
}

Bên router ta khai báo như sau:

// Tùy vào vị trí các file mà các bạn thay đổi cho đúng
const express = require('express');
const router = express.Router();
const controller =  require('../controllers/controller');

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

Kết luận

Qua bài học này, mình đã giới thiệu cho các bạn về kỹ thuật lập trình thôi. Chớ controler đâu có gì đâu hehe.

Rất mong được sự ủng hộ của mọi người để mình có động lực ra những bài viết tiếp theo.
{\__/}
( ~.~ )
/ > ♥️ I LOVE YOU 3000

JUST DO IT!