[MUSIC]
Trong bài học này, chúng ta sẽ tìm hiểu về cách chúng ta có thể viết các thông báo đơn giản.
Chúng ta cũng sẽ tìm hiểu về các module Node và
cách các module Node cho phép chúng ta sắp xếp các ứng dụng của mình thành nhiều file.
Chúng ta cũng sẽ tìm hiểu về các loại module Node khác nhau và
làm thế nào chúng ta có thể nhập các module Node vào các file của ứng dụng Node của chúng
ta và sử dụng chúng trong ứng dụng của chúng ta.
Trước tiên, chúng ta hãy tìm hiểu về các mô-đun Node một chút chi tiết hơn trong bài giảng này.
JavaScript, khi nó
được thiết kế lần đầu tiên có nghĩa là một ngôn ngữ kịch bản được sử dụng trong trình duyệt.
Vì vậy, lĩnh vực nhỏ trong đó nó được cho là được sử dụng là trình duyệt.
Bây giờ, như bạn đã hiểu từ chuyên môn này, JavaScript đã
vượt ra ngoài ý định ban đầu của nó, và bây giờ đang được sử dụng để viết các ứng dụng.
Cả hai đều được chạy bằng cách sử dụng các framework trong trình duyệt, và
cũng để chạy các ứng dụng ở phía máy chủ, như chúng ta sẽ thấy trong khóa học này.
JavaScript ban đầu không bao giờ được thiết kế với bất kỳ thư viện chung nào.
Nếu bạn nhìn vào các ngôn ngữ lập trình chuẩn như C, C++, Java, v.v...
tất cả chúng đều có các thư viện chuẩn cho phép bạn truy cập
vào phần cứng cơ bản.
Và cũng cung cấp một cách có cấu trúc tổ chức ứng dụng thành
nhiều tệp và sau đó kết hợp chúng lại với nhau khi bạn tạo một ứng dụng.
JavaScript không bao giờ có bất kỳ hỗ trợ này khi nó bắt đầu.
Bởi vì như chúng ta hiểu JavaScript không được thiết kế cho
mục đích mà nó đang được sử dụng ngày nay.
Nhưng tất nhiên,
mọi người hiểu được những khó khăn khi bạn cần mở rộng JavaScript
ra ngoài một tập tin duy nhất được sử dụng như một ngôn ngữ kịch bản cho trình duyệt.
Bây giờ, nếu bạn có một ứng dụng JavaScript rất lớn,
nó sẽ trở nên cồng kềnh khi viết toàn bộ mã trong một tập tin duy nhất.
Và rõ ràng bạn muốn kết quả có thể phá vỡ ứng dụng của bạn thành
nhiều sự kiện.
Bây giờ, không giống như các ngôn ngữ lập trình truyền thống, JavaScript không bao giờ có cách
phân phối mã thành nhiều tập tin và sau đó kết hợp chúng lại với nhau.
Vì vậy, đây là nơi CommonJS API đến để lấp đầy
khoảng trống này lấp đầy nhu cầu cho một số ứng dụng phổ biến.
Và định dạng CommonJS này định nghĩa một định dạng mô-đun có thể được sử dụng để
chia ứng dụng JavaScript của bạn thành nhiều tập tin.
Và Node áp dụng định dạng CommonJS để
tổ chức ứng dụng JavaScript của chúng tôi thành nhiều tập tin.
Và trong JavaScript, với định dạng CommonJS,
mỗi tập tin trở thành mô-đun Node riêng của nó.
Vì vậy, chúng ta hãy tìm hiểu thêm một chút về các module Node trong phần còn lại của bài giảng này.
Vì vậy, như tôi vừa đề cập,
mỗi tập tin trong một ứng dụng Node trở thành mô-đun Node riêng của nó.
Vì vậy, tập tin hoặc tập tin JavaScript xác định ranh giới cho một mô-đun Node.
Vì vậy, trong tập tin đó, đặc tả CommonJS
cung cấp một biến gọi là biến mô-đun đó là một đối tượng JavaScript.
Và điều này cho phép bạn truy cập vào định nghĩa mô-đun hiện tại trong một tập tin.
Và trên đối tượng mô-đun này, bạn có thuộc
tính module.exports xác định xuất từ mô-đun hiện tại.
Vì vậy, khi bạn gán một cái gì đó cho thuộc tính module.exports,
sau đó trở thành giá trị xuất khẩu từ mô-đun hiện tại.
Vì vậy, khi mô-đun này được nhập vào một tập tin khác
của ứng dụng Node của chúng tôi, sau đó bất cứ điều gì được xuất từ mô-đun này
trở nên có sẵn trong ứng dụng thứ hai.
Chúng ta sẽ xem xét một ví dụ trong thời gian ngắn.
Khi bạn cần nhập một mô-đun vào một mô-đun khác,
đây là nơi chức năng require được sử dụng để nhập mô-đun.
Vì vậy, như chúng ta sẽ nhận thấy trong một thời gian ngắn, chức năng require được sử dụng
để nhập một mô-đun Node được định nghĩa trong tập tin khác vào tập tin hiện tại để
nó có thể được sử dụng trong ứng dụng nút của chúng tôi.
Mô-đun nút có thể có ba loại.
Chúng tôi có module Node dựa trên tập tin nơi chúng tôi xác định mô-đun Node trong một tập tin,
trong ứng dụng của chúng tôi và chúng tôi sử dụng nó trong ứng dụng của chúng tôi.
Sau đó, chúng ta có các module cốt lõi đã là một phần của Node.
Các nhà thiết kế Node giữ các mô-đun lõi này cố ý nhỏ để
Node có thể được giữ nhỏ.
Và cũng cung cấp đầy đủ chức năng để
các nhà thiết kế mô-đun bên ngoài có thể thêm vào
chức năng riêng của họ mà có thể được tận dụng khi chúng tôi phát triển các ứng dụng Node.
Vì vậy, các mô-đun cốt lõi bao gồm đường dẫn, hệ thống tập tin, os, util và một vài người khác.
Chúng tôi sẽ gặp một số người trong số họ khi chúng tôi đi cùng trong khóa học này.
Sau đó, chúng ta có các module Node bên ngoài.
Đây là những mô-đun Node bên thứ ba được phát triển bởi các nhà phát triển Node, và
sau đó được cung cấp thông qua hệ sinh thái Node.
Vì vậy, các module Node bên ngoài này có thể được cài đặt trong hệ thống của chúng tôi bằng cách sử dụng NPM.
Vì vậy, nhiều lần bạn sẽ thấy chúng tôi sử dụng NPM cài đặt và
tên của mô-đun Node và đó sẽ được bao gồm trong
ứng dụng Node của chúng tôi trong một thư mục có tên là thư mục node_modules.
Và chúng ta sẽ gặp các module Node bên ngoài trong một bài học sau này trong khóa học này.
Làm thế nào để chúng ta sử dụng các module Node?
Khi bạn cần sử dụng một mô-đun Node trong một tập tin Node khác trong ứng dụng của bạn,
sau đó bạn sẽ sử dụng chức năng require.
Tôi đã đề cập ngắn gọn về chức năng yêu cầu trong một trong những
slide trước đó ở đó.
Chức năng yêu cầu cho các module Node dựa trên tập tin,
bạn sẽ chỉ định điều này như là yêu cầu và
sau đó chỉ định đường dẫn đến tập tin có chứa mô-đun Node.
Vì vậy, bạn sẽ nói require./, tên mô-đun nếu tập tin tồn tại
trong thư mục hiện tại được viết mà ứng dụng Node của bạn tồn tại.
Vì vậy, điều này chỉ định đường dẫn tương đối đến các tập tin từ vị trí hiện tại.
Và cũng cho các mô-đun lõi và bên ngoài,
bạn thường sẽ chỉ định chúng bằng cách nói yêu cầu và tên của mô-đun.
Bạn sẽ chỉ định rõ một đường dẫn cho nó.
Nếu nó là một mô-đun cốt lõi, nó đã là một phần của Node và vì vậy
nó sẽ được tự động bao gồm.
Nếu nó là một mô-đun bên ngoài, sau đó nó sẽ được cài đặt hoặc
trong thư mục node_modules trong thư mục hiện tại, hoặc nếu Node không
tìm thấy mô-đun bên ngoài trong thư mục node_modules trong thư mục hiện tại,
nó sẽ đi lên thư mục cấp cao hơn tiếp theo tìm mô-đun Node đó.
Hoặc thư mục cấp cao hơn tiếp theo và
lên hệ thống phân cấp cho đến khi nó định vị các mô-đun Node mà
sau đó sẽ được nhập khẩu để được sử dụng trong ứng dụng Node của bạn.
Nếu nó không thể tìm thấy mô-đun Node lên hệ thống phân cấp,
sau đó nó rõ ràng sẽ tăng một lỗi nói rằng mô-đun Node bị thiếu.
Cách tổ chức này rất hữu ích trong cách
cấu trúc ứng dụng Node được định nghĩa vì chúng ta sẽ gặp
nhiều hơn trong phần sau của khóa học này.
Với phần giới thiệu nhanh về mô-đun Node này, chúng ta hãy xem một ví dụ
mà chúng ta sẽ làm như một phần của bài tập sau bài giảng này.
Như chúng ta đã học được trong bài giảng này,
ranh giới của một mô-đun Node được định nghĩa bởi tập tin có chứa mã ở đây.
Vì vậy, ở đây, tôi có một ví dụ về một mô-đun Node được định nghĩa là rectangle.js.
Và trong đó bạn có thể thấy rằng tôi đang sử dụng hai xuất khẩu ở đây,
Tôi đang nói exports.perimeter và exports.area.
Và bạn sẽ thấy rằng ở đây tôi không sử dụng module.
exports vì xuất khẩu chính nó cũng là một phiên bản rút gọn của module.exports.
Vì vậy, nếu bạn không muốn sử dụng module.exports hoàn toàn nhưng
thay vào đó chỉ muốn xuất khẩu, thì đây là một cách khác để viết
những mục được xuất khẩu từ các module Node hiện tại.
Vì vậy, ở đây chúng tôi đang xuất hai chức năng, chu vi và
khu vực từ mô-đun Node hình chữ nhật.
Bây giờ để sử dụng mô-đun này trong
một tập tin khác, sau đó chúng ta hãy nhìn vào tập tin index.js.
Và dòng đầu tiên trong tập tin này, bạn sẽ nhận thấy rằng nó nói
var rect = yêu cầu và trong dấu ngoặc kép,. /hình chữ nhật.
Vì vậy, điều này là xác định rằng các mô-đun hình chữ nhật sẽ là quan trọng trong đây,
tôi đã sử dụng trong tập tin đặc biệt này của ứng dụng.
Vì vậy, đây là cách chúng tôi sẽ định nghĩa mô-đun Node, và
đây là một ví dụ về một mô-đun Node dựa trên tập tin.
Chúng ta sẽ gặp phải các module cốt lõi và
các module Node bên ngoài trong các bài học sau của khóa học này.
[ NHẠC]