Node.js - Modules

Một mô-đun trong Node.js là một tập hợp các mã độc lập và có thể tái sử dụng, có thể được nhập vào bất kỳ ứng dụng Node.js nào. Như tên gọi đã gợi ý, các mô-đun cho phép một cách tiếp cận mô-đun và có cấu trúc để phát triển ứng dụng Node.js. Thay vì đặt tất cả các hàm, lớp và phương thức của một ứng dụng trong một tệp .js duy nhất, các tài nguyên này được sắp xếp trong các tệp riêng biệt (gọi là mô-đun) dựa trên sự liên quan của chúng. Điều này giúp kiểm soát tốt hơn việc bảo trì và khắc phục sự cố của ứng dụng Node.js.

Node.js chạy trên động cơ JavaScript V8, động cơ này giải thích mã JavaScript. Tất cả các quy trình phía máy chủ được xử lý bởi các mô-đun Node.js liên quan được nhập vào ứng dụng thông qua hàm require(). Một mô-đun Node.js là một thư viện chứa các hàm, lớp và mã tái sử dụng khác, được lưu trữ trong một hoặc nhiều tệp .js.

Một ví dụ điển hình về việc nhập một mô-đun Node.js là cách một máy chủ Node.js được khởi động. Hàm createServer() được định nghĩa trong mô-đun http là cần thiết để khởi động máy chủ Node.js. Do đó, trước khi gọi, mô-đun http cần được nhập vào.

http = require('node:http');
listener = function (request, response) {
   ...
   ...
};

server = http.createServer(listener);
server.listen(3000);

Types of Modules

Mỗi module trong Node.js có ngữ cảnh riêng của nó và thực hiện tiêu chuẩn module CommonJS. Các module trong Node.js có thể thuộc một trong ba loại sau:

Third-party modules

Các mô-đun này được phát triển bởi các nhà phát triển độc lập và được cung cấp để sử dụng trên kho NPM. Bạn nên cài đặt một mô-đun hoặc toàn cục hoặc cục bộ trong thư mục dự án Node.js, nếu bạn muốn tích hợp chức năng của nó vào ứng dụng của mình.

Mô-đun Express là một ví dụ về một mô-đun như vậy. Để cài đặt, hãy sử dụng bất kỳ lệnh nào sau đây −

npm install express -g //install globally
or
npm install express –save //install locally

Bạn có thể sau đó nhập mô-đun đã cài đặt vào ứng dụng của bạn. Ví dụ -

var express = require('express');

Built-in modules

Phần mềm runtime Node.js đi kèm với động cơ JavaScript V8, được tích hợp với một số mô-đun lõi, thực hiện các tác vụ quan trọng phía máy chủ, chẳng hạn như quản lý vòng lặp sự kiện, thực hiện I/O tệp và các chức năng cụ thể của hệ điều hành, v.v. Các ví dụ về các mô-đun tích hợp sẵn hoặc mô-đun lõi là http, fs, console, v.v. Những mô-đun này được cài đặt sẵn, nhưng bạn phải nhập chúng bằng hàm require() (trừ một vài mô-đun như process, buffer và các mô-đun console, chúng là các đối tượng toàn cục). Ví dụ −

var fs = require('fs');

Local modules

Một mô-đun cục bộ là một tệp .js, lưu trữ định nghĩa của một hoặc nhiều hàm hoặc lớp cần thiết cho ứng dụng Node.js của bạn. Một mô-đun như vậy có mặt cục bộ trong cùng một thư mục ứng dụng Node.js, và cũng nên được bao gồm trong ứng dụng bằng cách sử dụng hàm require().

Mỗi tệp .js trong một ứng dụng Node.js có một đối tượng module đặc biệt. Thuộc tính exports của nó cho phép một hàm, đối tượng hoặc biến nhất định từ tệp .js được sử dụng ở bên ngoài mã.

Example

Tệp functions.js dưới đây bao gồm ba hàm trả về giá trị của x lũy thừa y, căn bậc hai của x và giá trị log của x. Các hàm này được xuất khẩu để sử dụng bên ngoài.

exports.power = function powerval( x, y) {
   var val = Math.pow(x,y);
   return val;
}

exports.root = function rootval(x,y) {
   var val = Math.sqrt(x);
   return val;
}

exports.log = function logval(x) {
   var val = Math.log10(x);
   return val;
}

Chúng ta sẽ sử dụng các hàm xuất khẩu này trong một ứng dụng Node.js khác có tên là main.js. Đầu tiên, hãy nhập mô-đun hàm cục bộ và sau đó gọi các hàm được nhập khẩu từ nó.

const mymodule = require('./mathfunctions');

console.log("10 Raised to 3:" + mymodule.power(10,3));
console.log("Square root of 10: "+ mymodule.root(10));
console.log("Log of 1000: " + mymodule.log(1000));

Output

10 Raised to 3:1000
Square root of 10: 3.1622776601683795
Log of 1000: 3