12/08/2018, 18:01

"Module" trong Nodejs, khái niệm và thực tiễn.

Xin chào tất cả các bạn, tiếp tục series lập trình Nodejs, bài hôm nay của chúng ta sẽ xoay quanh một thuật ngữ rất quan trọng trong Nodejs, đó là "Module". Cùng tìm hiểu xem nó là gì và cách sử dụng nó cho dự án của chúng ta như thế nào nhé. Những nội dung có trong bài này: 1. Khái ...

Xin chào tất cả các bạn, tiếp tục series lập trình Nodejs, bài hôm nay của chúng ta sẽ xoay quanh một thuật ngữ rất quan trọng trong Nodejs, đó là "Module". Cùng tìm hiểu xem nó là gì và cách sử dụng nó cho dự án của chúng ta như thế nào nhé.

Những nội dung có trong bài này:

1. Khái niệm Module trong Nodejs

2. Module tích hợp sẵn trong Nodejs và Module tải về từ bên ngoài.

3. Tự viết và sử dụng một Module đơn giản.

4. Cách viết một Module chạy trên cả Client (Browser) và Server (Nodejs).

– Bài viết cũng đồng thời được Post trên trang blog cá nhân: https://trungquandev.com/series-lap-trinh-nodejs/

1. Khái niệm Module trong Nodejs.

Khi viết code Nodejs, bạn có thể để toàn bộ code ứng dụng vào một file index.js duy nhất nếu bạn thích thế. Nodejs không quan tâm ứng dụng của bạn lớn cỡ nào, nó vẫn biên dịch code và chạy tốt. Nhưng nếu bạn làm như thế thì toàn bộ code của bạn sẽ trở thành một thứ gì đó càng ngày càng phức tạp và khó hiểu, lúc cần bảo trì sửa chữa code, thêm chức năng ... sẽ trở nên cực kỳ khó khăn.

Hiểu vui vui như là: khi mặc đồ lên người, có quần, áo, mũ, giày, tất ... các thứ kết hợp lại với nhau mặc lên người bạn, thì trông sẽ khác hẳn so với việc bạn mang cả đống vải quấn xung quanh mình thay cho quần áo đúng không? =))

Từ đó "Module" trong Nodejs ra đời:

"Node.js sử dụng kiến trúc Module để đơn giản hóa việc tạo ra các ứng dụng phức tạp. Module là giống như các thư viện trong C, C#, Java, … Mỗi module chứa một tập các hàm chức năng có liên quan đến một "đối tượng" của Module."

"Các module được giữ tách biệt riêng với nhau, tách riêng với code base, khi nào cần sử dụng những cái nào thì gọi chúng ra và kết hợp lại với nhau tùy logic xử lý của bạn."

Giống như bạn có một cái tủ đồ nhiều ngăn, ngăn để áo, ngăn để quần, ngăn để tất...vv. Hôm nay bạn có hẹn đi chơi với bạn gái, dĩ nhiên là phải ăn mặc chỉn chu đầy đủ quần áo rồi :v bây giờ chỉ việc mở từng ngăn tủ lấy đồ ra mix lại với nhau thôi.

"Tóm lại, mình hiểu theo một cách đơn giản thế này: Module là các đoạn code được đóng gói lại với nhau và được giữ Private, chỉ các hàm và biến được định nghĩa bên trong Module là có thể truy cập và thao tác với nhau. Còn khi nào cần sử dụng Module từ bên ngoài thì chúng ta sẽ chìa các API là các biến, các hàm, hoặc cả 2 biến và hàm ra bên ngoài bằng cách sử dụng đối tượng exports hoặc module.exports."

2. Module tích hợp sẵn trong Nodejs và Module tải về từ bên ngoài.

- Các module tích hợp (Built-in Modules):

Đây là những module mà sau khi cài đặt Nodejs xong bạn đã có thể gọi ra và sử dụng. Ví dụ như http, https, fs, path...vv... Danh sách các module tích hợp đều được liệt kê ở đây: https://www.w3schools.com/nodejs/ref_modules.asp

Như ví dụ ở bài trước, mình có sử dụng một module tích hợp là http để viết ứng dụng Hello world! Chỉ việc gọi ra và sử dụng luôn.

- Các module bên ngoài (External Modules):

Điều thực sự khiến cho Nodejs nổi tiếng mà mình nhận thấy đó không phải là ở các module tích hợp, mà chính là một hệ sinh thái khổng lồ của các module mã nguồn mở bên ngoài được cung cấp bởi cộng đồng Nodejs.

Chúng ta có thể cài đặt được các module bên ngoài này thông qua NPM và một trang web cực kỳ thân thuộc với những ai làm việc cùng Nodejs đó là https://www.npmjs.com

Cũng ở bài trước, mình có sử dụng một module bên ngoài đó là express để viết ứng dụng Hello world!

Câu lệnh cài đặt: npm install --save express

Và khi muốn sử dụng thì sẽ gọi require("express");

3. Tự viết và sử dụng một Module đơn giản.

Trong phần này, ý tưởng mình nghĩ ra là viết một module có chức năng trả về ngẫu nhiên tên của một chú mèo trong một mảng danh sách tên các loài mèo             </div>
            
            <div class=

0