Trong các bài học trước đây,
chúng ta đã học được về Node.
Chúng ta cũng đã thấy cách Node có thể được sử dụng để thiết lập một máy chủ Web.
Bây giờ các nhà thiết kế Node cố ý giữ nút nhỏ với một số lượng nhỏ các
mô-đun mã để họ có thể để nó lên cho các
nhà phát triển bên thứ ba để đưa ra các giải pháp sáng tạo cho các vấn đề.
Vì vậy, một khi Node được phát hành một số nhà phát triển bên thứ ba bắt đầu thiết kế
và phát hành các mô-đun bên thứ ba thú vị có thể chạy trên nền tảng Node.
Bây giờ bạn đã thấy một số mô-đun Node có thể được
sử dụng để phát triển front-end trong các khóa học trước đó.
Bây giờ trong khóa học này, chúng tôi đang xem xét phát triển phía máy chủ và phía máy chủ,
một trong những mô-đun Node bên thứ ba phổ biến nhất hoặc
khuôn khổ để xây dựng máy chủ HTTP là Express. Chúng
ta hãy xem xét một số chi tiết của Express trong
bài giảng này và sau đó chúng ta sẽ sử dụng Express để
xây dựng một máy chủ phục vụ API REST trong suốt phần còn lại của khóa học này.
Đầu tiên, Express là gì?
Express là một nhanh chóng, unpinionated,
tối giản khuôn khổ chạy trên đầu trang của Node.js và hỗ trợ phát triển Web.
Đây là định nghĩa mà tôi mượn từ expressjs.com,
trang web nơi Express liên quan tài liệu có sẵn cho chúng tôi.
Now Express cho phép bạn phát triển một ứng dụng Web, ứng
dụng phía máy chủ sẽ phục vụ lên nội dung để tiêu thụ bởi front-end của chúng tôi.
Express cung cấp một tập hợp các tính năng mạnh mẽ mà chúng tôi sẽ khám phá
chi tiết hơn thông qua các bài học còn lại trong khóa học này.
Thể hiện chính nó như tôi đã nói là một khuôn khổ tối giản,
và Express cũng cung cấp một cách mở rộng và thêm
chức năng để Express thông qua middleware của bên thứ ba.
Điều này mở rộng chức năng của Express và thêm vào nhiều tính năng hơn theo yêu cầu.
Vì vậy, bạn có thể xây dựng máy chủ Web của bạn bằng cách sử dụng nhiều phần mềm trung gian bên thứ ba như
cần thiết để đáp ứng nhu cầu của máy chủ Web của bạn mà bạn đang thiết kế.
Chúng tôi sẽ xem xét một số ví dụ về phần mềm trung gian của bên thứ ba trong bài học này và chúng tôi
cũng sẽ tìm hiểu thêm về những điều này khi chúng tôi đi qua các bài học còn lại trong khóa học này.
Để sử dụng Express trong dự án của bạn, tất nhiên,
bước đầu tiên là cài đặt Express và vì Express là một mô-đun Node,
chúng tôi cài đặt nó bằng cách nói npm install express —save
và điều này sẽ cài đặt Express vào dự án địa phương của bạn.
Chúng ta sẽ thấy việc sử dụng điều này trong bài tập sau bài giảng này.
Hãy nói ngắn gọn về phần mềm trung gian Express.
Vì vậy, mục đích của middleware chính xác là gì?
Các middleware mà Express hỗ trợ cung cấp rất nhiều
chức năng plug-in mà sẽ được sử dụng để tăng cường ứng dụng Express của bạn,
plug-in chức năng như ví dụ, chúng tôi sẽ xem xét
một middleware gọi là Morgan cho phép bạn
in ra thông tin đăng nhập vào màn hình về yêu cầu đi vào máy chủ của bạn.
Tương tự như vậy, chúng ta sẽ xem xét một phần mềm trung gian khác gọi là BodyParser,
cho phép bạn phân tích nội dung của thông
điệp yêu cầu HTTP đến và trích xuất
thông tin từ nó để sử dụng trong ứng dụng Express của bạn.
Chúng ta sẽ thấy việc sử dụng những điều này trong bài tập sau.
Như tôi đã đề cập, Morgan không đăng nhập thông tin vào giao diện điều khiển ở phía máy chủ,
thông tin về các yêu cầu đến.
Tương tự như vậy, họ có thể phục vụ lên tài nguyên Web tĩnh từ máy chủ của chúng tôi bằng cách sử dụng Express
tĩnh vì vậy điều này sẽ phục vụ lên thông tin từ một thư mục
trong dự án Express của chúng tôi, và trong việc khai báo dự án bạn có thể nói tôi là tên
tập tin gạch dưới đôi và tên thư mục gạch dưới đôi hoặc dirname cung cấp cho
bạn đường dẫn đầy đủ cho các tập tin hoặc thư mục cho
các mô-đun hiện tại và bạn sẽ thấy tôi sử dụng điều đó trong bài tập.
Bây giờ chúng ta đã hiểu một chút về
Express và middleware Express sử dụng, chúng ta
hãy nhìn vào một mô-đun Node
vì đây là lần đầu tiên chúng ta gặp phải một module Node bên thứ ba,
chúng ta sẽ xem xét một số chi tiết về các module Node bên thứ ba để nếu chúng ta sẽ kiểm tra
package.json để xem những gì được chứa trong tập tin package.json,
chúng ta cũng sẽ xem xét phiên bản ngữ nghĩa.
Vì vậy, khi bạn chỉ định phiên bản của gói mà bạn sử dụng,
bạn luôn chỉ định phiên bản bằng cách chỉ định phiên bản lớn.Tiểu phiên bản vá lỗi.
Vì vậy, khi bạn cài đặt một gói,
nó luôn luôn được xác định bởi ba con số này,
phiên bản chính có thể giới thiệu những thay đổi phá vỡ do đó có nghĩa là nếu bạn đang
cài đặt một phiên bản mới hơn của gói, nó có thể không
hoàn toàn tương thích ngược với các phiên bản trước đó.
Nó có thể giới thiệu những thay đổi phá vỡ theo đó bạn có thể cần phải quay lại và sửa chữa
các mã mà bạn có thể đã viết trong phiên bản trước của dự án của bạn.
Phiên bản phụ giới thiệu
một số thay đổi nhỏ cho gói của bạn và có thể không phá vỡ thay đổi.
Một bản vá lỗi sẽ là một sửa lỗi thường được phát hành sau đó một lỗi nhỏ được phát hiện.
Vì vậy, các bản vá lỗi thường không dẫn đến bất kỳ thay đổi phá vỡ nào và do đó bạn có thể dễ dàng sử dụng
một phiên bản cao hơn hoặc một phiên bản vá lỗi cao hơn của
một gói cụ thể mà bạn đang sử dụng trong ứng dụng Node của bạn.
Khi bạn đang cài đặt một gói, bạn có thể chỉ
định phiên bản chính xác của gói để cài đặt bằng cách nói npm install,
ví dụ nếu bạn muốn cài đặt
phiên bản 4.0.0 của Express bạn có thể nói express @4 .0.0.
Vì vậy, bạn đang xác định rõ ràng phiên bản nào của gói để cài đặt.
Nếu bạn không sao với một phiên bản vá cấp cao hơn,
bạn sẽ nói npm install express@"~4.0.0 Nếu
một phiên bản phụ cao hơn của một gói là
chấp nhận được sau đó bạn sẽ nói @ và tên của gói.
Bây giờ loại thông tin này cũng được lưu trong tệp package.json,
chúng tôi sẽ nhanh chóng ghé thăm gói tập tin json
nơi bạn sẽ nhận thấy một số thông tin này được lưu.
Bây giờ khi bạn thực hiện bài tập sau bài giảng này,
bạn sẽ thấy điều này trong tập tin package.json.
Đây sẽ là kết quả của việc hoàn thành bài tập sau bài giảng này.
Trong bài tập chúng ta sẽ xây dựng một máy chủ Web đơn giản bằng cách sử dụng Express.
Bây giờ hãy để tôi đưa bạn qua một tour du lịch nhanh chóng của package.json
để minh họa một số thông tin trong package.json.
Vì vậy, trong tập tin package.json bạn sẽ nhận thấy thông tin này ở đây,
tài sản này cho json của chúng tôi được lưu trữ ở đây gọi là Phụ thuộc.
Các phụ thuộc là nơi bạn sẽ chỉ định các
module bên thứ ba bổ sung
mà dự án Node cụ thể này phụ thuộc vào,
vì vậy như bạn có thể thấy ở đây chúng tôi đang nói rằng dự án này phụ thuộc vào Express
và Morgan và lưu ý đặc biệt như thế nào thông tin này được chỉ định ở đây.
Vì vậy, đây là ^4.16.3 có nghĩa là điều này sẽ
làm việc với bất kỳ phiên bản nào là 4.16.3 hoặc cao hơn.
Bạn có thể sử dụng một phiên bản phụ cấp cao hơn và dự án này vẫn sẽ
ổn với nó và tương tự cho Morgan chúng tôi đã chỉ định thông tin ở đây.
Vì vậy, thông tin bổ sung này được thêm vào tập tin package.json bất cứ khi nào bạn làm
npm cài đặt và nói —save flag cho cài đặt npm.
Bây giờ, bạn cũng sẽ nhận thấy rằng tôi đã tạo ra một tập tin.gitignore ở đây và bên trong
tập tin.gitignore tôi đã chỉ định rằng git nên bỏ qua thư mục module Node.
Vì vậy, chính xác những gì được chứa trong thư mục mô-đun Node?
Nếu bạn cài đặt module của bên thứ ba vào ứng dụng Node của bạn,
tất cả các module của bên thứ ba này sẽ được lưu trong thư mục module Node ở đây,
vì vậy trong dự án của bạn, bạn sẽ thấy rằng thư mục Node module đã được tạo ra ở đây.
Và nhìn vào thư mục module nút, bạn sẽ thấy
một bó toàn bộ các gói đã được cài đặt.
Bây giờ tất cả những
điều này đã được cài đặt bởi vì bạn cài đặt Express và Express lần lượt phụ thuộc vào một số gói khác được yêu cầu vì vậy tất cả những người cũng được cài đặt ở đây theo mặc định.
Đặc biệt, hãy để tôi thu hút sự chú ý của bạn đến gói Express ở đây,
vì vậy nếu bạn đi vào gói Express bạn sẽ thấy
thông tin bổ sung được lưu trữ trong gói Express, vì
vậy quan điểm chỉ mục cũng kể từ khi Express chính nó là
một mô-đun Node bạn sẽ thấy một
tập tin package.json bên trong Express cũng có chứa
thông tin bổ sung mà tất nhiên là rất chi tiết
ở đó, khó khăn cho chúng tôi để hiểu nhưng lưu ý đặc biệt
rằng Express chính nó là phụ thuộc vào nhiều module Node khác ở đây.
Và đó là lý do tại sao tất cả các module Node khác
cũng đã được cài đặt vào thư mục module Node.
Vì vậy, khi bạn cài đặt Express,
điều này sẽ ngay lập tức cũng kích hoạt tất cả phụ thuộc của nó cũng được cài đặt bởi vì
Express sẽ yêu cầu các module Node khác cho nó để làm công việc của mình.
Ngoài ra, trong Express cũng bạn sẽ thấy các tập tin index.js.
Vì vậy, đây là điểm khởi đầu cho mô-đun Express Node của chúng tôi và
lưu ý đặc biệt rằng các tập tin index.js chỉ đơn giản là nói module.exports yêu cầu lib express.
Vì vậy, mã thực tế cho các mô-đun Express chính nó là bên trong dự án lib này,
thư mục lib ở đây và bạn có thể xem chi tiết.
Vì vậy, nếu bạn tò mò để xem các chi tiết của Express chính nó bạn có thể đi và nhìn
vào đó nhưng một lần nữa điều này có thể là một chút quá nhiều cho bạn tại thời điểm này.
Cho thời điểm này chỉ cần chấp nhận thực tế là Express sẽ làm công việc của mình như mong đợi.
Nhưng tôi nghĩ rằng nó sẽ là một trải nghiệm thú vị để truy cập thư mục của mô-đun Node
để xem xét một cấu trúc của một mô-đun Node bên thứ ba cụ thể chi tiết hơn một chút.
Ngoài ra, bạn sẽ nhận thấy rằng có một tập tin khác
ở đây được gọi là package-lock.json được cài đặt.
Bây giờ điều này đang được cài đặt bởi các phiên bản mới hơn của npm.
Tập tin package-lock.json được tự động tạo ra bởi
npm mà lưu trữ thông tin về
cây chính xác đã được tạo ra khi bạn cài đặt
các module Node khác và điều này rất hữu ích khi bạn
cần cài đặt các module Node tại một vị trí khác.
Vì vậy, ví dụ nếu bạn tải về một kho lưu trữ Git và
cố gắng tạo lại dự án này trên một máy tính khác,
bạn chỉ cần gõ npm cài đặt trên dấu nhắc và
điều đó sẽ nhắc ứng dụng Node của bạn
tự động cài đặt tất cả mọi thứ được chỉ định trong các phụ thuộc ở đây cho bạn.
Trong khi tạo ra rằng gói lock.json lưu trữ thông tin bổ sung được sử dụng bởi
npm để thực hiện cài đặt chính xác của tất cả các mô-đun npm được yêu cầu.
Bây giờ cho thời điểm này bạn không cần phải lo lắng về các chi tiết của
những gì có bên trong tập tin package-lock.json.
Với điều này, chúng tôi hoàn thành bài học này, nơi chúng tôi đã kiểm tra một số chi tiết về Express.