[MUSIC]
Bây giờ chúng ta đã hiểu REST API và thể hiện hỗ trợ cho
REST API, chúng ta hãy chuyển sang bài tập tiếp theo.
Nơi chúng ta sẽ xem xét cách chúng ta sẽ phát triển API REST
bằng cách sử dụng sự hỗ trợ được đưa ra bởi express.
Và cũng có thể, việc sử dụng bộ định tuyến nhanh,
cho phép chúng tôi tổ chức mã của chúng tôi theo cách phù hợp hơn
khi bạn cần hỗ trợ một số lượng lớn các điểm cuối REST API.
Để bắt đầu, tiếp tục với thư mục node-express
chúng tôi đã làm việc trên máy chủ web dựa trên biểu thức.
Tại dấu nhắc, hãy cài đặt bộ phân tích cơ thể,
do đó, để làm điều đó, gõ npm cài đặt bộ phân tích cơ thể —save.
Và chúng tôi đang sử dụng phiên bản 1.18.3 của bộ
phân tích cơ thể trong khóa học này ở đây.
Bây giờ một khi chúng tôi đã cài đặt cơ thể phân tích cú pháp, sau đó đi vào mã của chúng tôi.
Trong index.js5,
hãy để tôi yêu cầu BodyParser, vì vậy
chúng tôi sẽ nói const BodyParser
yêu cầu cơ thể-phân tích cú pháp.
Và sau đó bất cứ khi nào bạn cần sử dụng một middleware,
bạn sẽ nói, app.use (BodyParser.json).
Vì vậy, điều này cho phép chúng ta phân tích nội dung của thông điệp yêu cầu,
được định dạng ở định dạng JSON.
Một khi chúng tôi đã hoàn thành điều đó, sau đó chúng ta hãy bắt đầu xây
dựng hỗ trợ API REST cho điểm cuối /dishes.
Sử dụng các
phương thức app.all, app.get, put, post, và delete được hỗ trợ bởi express.
Để làm điều đó, hãy để tôi bắt đầu bằng cách nói
app.all, và các tham số đầu tiên
mà app.all lấy là điểm cuối.
Vì vậy, trong trường hợp này, tôi chỉ định điểm cuối của /dish.
Và sau đó tham số thứ hai là hàm callback,
req, res, tiếp theo, ba tham số ở đây.
Và bên trong chức năng gọi lại này, chúng tôi sẽ xử lý các yêu cầu đến.
Vì vậy, chúng tôi sẽ nói, khi một yêu cầu đến, cho tất cả các yêu cầu.
Vì vậy, khi chúng ta nói app.all, không có vấn đề mà phương pháp được gọi,
get, put, post, hoặc delete, cho /dishes REST API điểm cuối,
mã này sẽ được thực hiện đầu tiên theo mặc định ở đây.
Vì vậy, chúng tôi sẽ nói res StatusCode là 200 và
sau đó res.SeTheader và
chúng ta hãy nói Content-Type văn bản.
Chúng tôi sẽ gửi văn bản thuần túy ngay bây giờ, thay vì văn bản HTML.
Điều này sẽ đủ cho các điểm cuối REST API.
Sau đó, chúng tôi sẽ gửi dữ liệu dưới dạng JSON một khi chúng tôi
có thể truy xuất dữ liệu từ cơ sở dữ liệu.
Vì vậy, điều đó sẽ đến trong một trong những bài tập sau này.
Trong thời điểm này, chúng tôi sẽ chỉ đơn giản là gửi trả lời rõ ràng trở lại cho khách hàng.
Bây giờ sau hai, phần mềm trung gian ở đây chưa hoàn thành.
Vì vậy, chúng tôi sẽ gọi chức năng tiếp theo ở đây, vì vậy tiếp theo như bạn thấy đề cập đến điều này tiếp theo.
Vì vậy, khi bạn gọi tiếp theo, những gì nó có nghĩa là nó sẽ tiếp tục tìm kiếm
thông số kỹ thuật bổ sung xuống dưới đây,
mà sẽ phù hợp với món ăn này điểm cuối.
Vì vậy, điều này sẽ được thực hiện cho tất cả các yêu cầu, nhận được, đặt, đăng
, và xóa, trên các món ăn, và nó sẽ tiếp tục đến một kế tiếp.
Vì vậy, ở đây, giả sử chúng tôi nhận được một yêu cầu get
trên các món ăn, có nghĩa là bây giờ,
nếu chúng ta nhận được một yêu cầu get trên các món ăn
, đầu tiên này sẽ được thực hiện, và
sau đó req và res sẽ được chuyển
sang cuộc gọi thứ hai này ở đây.
Vì vậy, trong trường hợp này, tôi sẽ không còn cần tiếp theo nữa,
bởi vì tôi sẽ không gọi thêm nữa.
Tôi sẽ hoàn thành việc xử lý ngay trong phương pháp này ở đây chính nó.
Vì vậy, nếu chúng ta sửa đổi req hoặc res bên trong mã này,
sau đó khi bạn gọi tiếp theo, rằng đối tượng sửa đổi
sẽ được thông qua như là tham số này.
Vì vậy, nếu bạn đã ban hành một yêu cầu get trên các món ăn, vì vậy đây là những gì sẽ được
thực hiện ngay sau này, vì vậy điều này tiếp theo sẽ làm cho nó để vượt qua trên.
Và sau đó ở đây, bạn nhận thấy rằng chúng tôi đã sửa đổi đối tượng res ở đây.
Và sửa đổi sẽ mang theo như tham số đầu vào cho chức năng này ở đây.
Vì vậy, bên trong chức năng này get, chúng ta có thể nói, ví dụ, tại thời điểm này,
tôi chỉ đơn giản là sẽ gửi lại một thông điệp đơn giản, chúng tôi sẽ nói,
sẽ gửi tất cả các món ăn cho bạn.
Sau đó, khi chúng ta lấy thông tin món ăn từ cơ sở dữ liệu
sau khi chúng ta tìm hiểu về MongoDB, sau đó chức năng này sẽ được trả
lại dữ liệu JSON đó trở lại cho khách hàng, vì nó là trong một yêu cầu get ở đây.
Bây giờ trong khóa học trước đó, chúng tôi đã sử dụng máy chủ JSON, và
máy chủ JSON đã cung cấp tất cả những điều này cho chúng tôi.
Bây giờ bạn đang thấy cách bạn sẽ xây dựng
một máy chủ thực sẽ xử lý yêu cầu đến.
Và sau đó tạo ra một phản hồi thích hợp và
gửi nó trở lại cho bạn để đáp ứng yêu cầu nhận được từ phía khách hàng.
Và đây là nơi người dùng thể hiện, như chúng ta thấy ở đây, rất hữu ích.
Vì vậy, chúng tôi đã xử lý get, chúng
ta hãy xử lý bài cũng trên các món ăn ở đây.
Và một lần nữa, các tham số sẽ là (req, res,
tiếp theo), và chức năng đó được gọi sẽ ở đây.
Bây giờ, khi nhận được yêu cầu, bởi vì ở đây, bạn đang gọi rest.end.
Vì vậy, kết thúc đó là xử lý yêu cầu get và không kích hoạt trả
lời được gửi trở lại, hoặc phản hồi được gửi lại cho khách hàng tại thời điểm này.
Bây giờ, nếu bạn nhận được một yêu cầu đăng trên các món ăn, một lần nữa, toàn bộ mã này sẽ được thực hiện.
Và sau đó, vì điều này tiếp theo, mà sẽ thả vào cuộc gọi chức năng này ở đây.
Và sau đó mã ở đây, sẽ được thực hiện, vì vậy khi bạn nhận được một
bài đăng Yêu cầu gửi đến từ máy chủ sẽ mang một số thông tin
trong nội dung của tin nhắn dưới dạng dữ liệu JSON.
Họ sẽ thấy những gì hình thức của dữ liệu JSON là khi chúng ta
nhìn sau khi chúng ta kiểm tra điểm cuối bằng cách sử dụng bài net.
Tôi sẽ cho bạn thấy nội dung của thông điệp yêu cầu đăng sẽ chứa.
Nhưng tại thời điểm này, những gì tôi sẽ làm là,
tôi sẽ trích xuất thông tin từ cơ thể.
Và vì vậy ở đây khi chúng ta sử dụng bộ phân tích cú pháp cơ thể, những gì xảy ra là đối với
yêu cầu đến, cơ thể của yêu cầu đến sẽ được phân tích cú pháp và
sau đó thêm vào đối tượng req như req.body.
Vì vậy, req.body sẽ cung cấp cho bạn quyền truy cập vào bất cứ điều gì bên trong nội
dung của thông điệp.
Vì vậy, khi tôi gửi yêu cầu,
tôi sẽ thêm thông tin
vào cơ thể yêu cầu dưới dạng một chuỗi JSON
có chứa một tên và một mô tả.
Vì vậy, tôi sẽ trích xuất hai mảnh thông tin này và
sau đó in chúng ra và sau đó gửi chúng trở lại cho khách hàng trong tin nhắn trả lời.
Vì vậy, tôi có thể nói, req.body.và sau đó tên.
Và như vậy kỳ vọng là khi khách hàng gửi tin nhắn bài đăng,
nội dung bài đăng sẽ chứa một chuỗi JSON
, cũng sẽ chứa thuộc tính tên trong chuỗi JSON.
Vì vậy, req.body.name cộng và
đây là nơi tôi sẽ bao gồm
với các chi tiết: + req.body.description.
Vì vậy, bất cứ điều gì chuỗi JSON chứa trong req.body, nhưng
chuỗi JSON sẽ được phân tích thành một đối tượng JavaScript và
thêm vào đối tượng yêu cầu như là một cơ thể thuộc tính.
Đối tượng JavaScript chỉ
đến bất cứ điều gì đi vào như là chuỗi JSON trong nội dung của thông điệp yêu cầu.
Vì vậy, đó là lý do tại sao tôi có thể phân tích tài sản tên, tài sản mô tả,,
bạn có thể có tài sản giá, tài sản hình ảnh, và tất cả những điều đó.
Vì vậy, nếu bạn đã thực hiện các khóa học trước đó, bạn đã nhìn thấy cấu trúc của một
đối tượng món ăn, dưới dạng một chuỗi JSON hoặc đối tượng JavaScript ở đó.
Vì vậy, tên và mô tả nghe có vẻ quen thuộc với bạn.
Vì vậy, đó chính xác những gì tôi đang sử dụng ở đây.
Ngay bây giờ tôi chỉ trích xuất tên và mô tả từ cơ thể và
sau đó gửi nó trở lại cho khách hàng trong cơ thể này.
Vì vậy, tôi chỉ xây dựng thông điệp trả lời này ở đây bằng cách sử dụng thông tin
từ cơ thể của thông điệp yêu cầu, và sau đó gửi nó trở lại cho khách hàng.
Vì vậy, theo cách đó tôi có thể xác nhận rằng máy chủ đang nhận được bất cứ điều gì tôi đang gửi
trong nội dung của tin nhắn.
Vì vậy, đây là yêu cầu bài.
Bây giờ để đặt, để tôi chỉ cần sao chép này, và sau đó dán nó ở đây.
Và sau đó để đưa vào đó món ăn điểm cuối,
bởi vì nó đặt trên các món ăn điểm cuối không có ý nghĩa.
Bài đăng có nghĩa là bạn đang đăng một món ăn mới lên máy chủ.
Một đặt trên các món ăn điểm kết thúc không có ý nghĩa,
vì vậy ở đây những gì tôi sẽ làm là tôi
sẽ trả lời lại với các
hoạt động PUT thông điệp không được hỗ trợ trên /dĩa.
Bên cạnh đó, tôi cũng sẽ, Bao gồm một mã trạng thái của 403.
403 có nghĩa là hoạt động của họ không được hỗ trợ.
Vì vậy, nếu bạn nhìn lại bảng mã phản hồi HTTP,
bạn sẽ thấy mã tương ứng 403 những gì nó đại diện ở đó.
Vì vậy, đó là những gì tôi đang sử dụng cho bài viết.
Để xóa, tôi sẽ sao chép
cái này và xóa tôi sẽ,
Đơn giản chỉ cần phân tích cú pháp này, và sau đó chúng ta sẽ nói, Xóa tất cả các món ăn.
Vì vậy, khi bạn gửi một yêu cầu xóa trên đó /dishes điểm cuối.
Nó được hiểu là có
nghĩa là khách hàng muốn xóa tất cả các thông tin món ăn ở phía máy chủ.
Bây giờ, đây là một hoạt động nguy hiểm, vì vậy
bạn đảm bảo rằng bạn không cho phép người dùng đối tác thực hiện.
Vì vậy, sau này, khi chúng ta nghiên cứu xác thực,
chúng ta sẽ thấy làm thế nào chúng ta có thể res kiểm tra hoạt động này để chỉ người dùng đặc quyền.
Nhưng một lần nữa, như bạn thấy, đây là một hoạt động nguy hiểm, vì vậy hãy nhớ về điều đó.
Vì vậy, bây giờ bạn thấy rằng trong các món ăn cuối cùng, chúng tôi đã nhận được, đặt, đăng,
và xóa hỗ trợ.
Chúng ta cũng hỗ trợ rằng trên các món ăn/:Dishid điểm cuối.
Vì vậy, tôi sẽ sao chép các get, put, post, và xóa các phương pháp từ đây,
và sau đó gọi tất cả trong số họ cũng được hỗ trợ trên
đĩa/: dishid.
Vì vậy, đây là cho get, và chúng tôi sao chép điều đó và
đăng, đặt, và xóa.
Làm thế nào để chúng ta xử lý từng cái này?
Vì vậy, để có được, nếu tôi nhận được một yêu cầu trên món ăn/dishid,
những gì tôi muốn làm là để trích xuất tham số này và
sau đó gửi nó trở lại trong yêu cầu, trong tin nhắn trả lời.
Vì vậy, chúng tôi sẽ nói, chúng tôi sẽ gửi,
Chi tiết của món ăn.
Giờ thì món nào?
Thông tin này nằm trong tham số.
Vì vậy, giá trị tham số này có thể lấy từ
Req.params.dishid.
Vì vậy, disHid này, như bạn thấy, tên mà bạn sử dụng ở đây nên phù hợp với giá trị này ở đây.
Vì vậy, nếu bạn chỉ đơn giản là nhìn thấy ID ở đây,
điều này cũng nên được tương ứng với SID cho ở đây.
Vì vậy, tên chính nó không có nghĩa là bất cứ điều gì, ngoại trừ tên tham số
này và điều này nên phù hợp với nhau, để bạn có thể truy xuất các thông tin một cách chính xác.
Vì vậy, chúng tôi sẽ nói, gửi các thông số món ăn DiSid và
sau đó chúng tôi sẽ nói với bạn.
Vì vậy, theo cách đó chúng ta biết rằng máy chủ đang nhận được các tham số món ăn..
Vì vậy, nếu tôi nói /dishes/23 có một số câu trả lời
sẽ gửi các chi tiết của món ăn 23 cho bạn và như vậy.
Vì vậy, chúng ta sẽ thấy làm thế nào nó hoạt động khi chúng ta sử dụng bài để kiểm tra máy chủ này.
Bây giờ để đăng bài.
Đối với bài viết, phương pháp này sẽ không được hỗ trợ,
vì vậy tôi sẽ chỉ sao chép phần này.
nó không có ý nghĩa để làm một bài đăng trên một ID món ăn cụ thể,
bởi vì bạn không cố gắng để thêm một món ăn mới.
Nhưng bạn muốn sửa đổi, và sửa đổi được thực hiện bằng cách sử dụng các hoạt động put.
Vì vậy, chúng tôi sẽ nói, POST hoạt động không được hỗ trợ trên /món ăn.
Và sau đó tôi sẽ thêm vào.
Req.params.dishid.
Vì vậy, điều này sẽ gửi lại bài nói không được hỗ trợ trên các
món ăn/23 trong tin nhắn trả lời.
Bây giờ, đối với PUT, Đối với PUT, chúng ta sẽ nói,
res.end và nói Will, cập nhật món ăn.
Req.params.dishid.
Hay đúng hơn, chúng ta sẽ làm theo cách này.
Trước tiên tôi sẽ viết, Vì vậy
res.write có thể được sử dụng để thêm một dòng vào thư trả lời.
Vì vậy, chúng tôi sẽ nói cập nhật các món ăn.
Và chúng ta sẽ nói Req.params.Dishid.
Và vì đây là một hoạt động PUT, và nếu cơ thể chứa chuỗi JSON,
chứa các chi tiết của món ăn,
tôi có thể trích xuất chuỗi JSON vì chúng tôi đang sử dụng bộ phân tích cú pháp cơ thể.
Vì vậy, chúng tôi sẽ nói sẽ
cập nhật các món ăn:.
Món nào?
req.body.name.
Thêm nữa.
Với chi tiết,
req.body.description.
Bây giờ, khi chúng tôi cập nhật các món ăn, Tôi muốn thêm một, Dòng mới có.
Vì vậy, tôi sẽ nói '/n' ở đó.
Vì vậy, khi bạn thực hiện một PUT, bạn đang gửi lại thông tin về ID món ăn bạn
đang cập nhật, và cũng có thể, các chi tiết bạn đang cập nhật.
Tên và mô tả,
mà phải nằm trong nội dung của tin nhắn PUT ở đó.
Để xóa, Nó sẽ nói Xóa món ăn, và req.params.dishid.
Và vì vậy để xóa, đây là hoạt động sẽ được thực hiện.
Vì vậy, bạn thấy rằng bây giờ chúng tôi có get, put, post, và
xóa các hoạt động trên các món dịch/dishid, điểm cuối, và
cũng có được, put, bài hoạt động trên /dishes, điểm cuối.
Vì vậy, bây giờ chúng ta hãy lưu các thay đổi.
Và khởi động lại máy chủ của chúng tôi.
Khởi động máy chủ bằng cách nói npm start.
Bây giờ chúng ta hãy đi đến người đưa thư và gửi một vài yêu cầu đến máy chủ này và
xem những gì nó trả lại.
Hãy để tôi phát hành đầu tiên một get đến máy chủ địa phương 3,000 và xem những gì nó trở lại.
Vì vậy, khi bạn gửi một yêu cầu để có được máy chủ địa phương 3.000,
nó vẫn là trả về chỉ mục bắt đầu trang HTML,
bởi vì việc xử lý tập tin tĩnh vẫn còn tại chỗ.
Bây giờ hãy để tôi gửi một yêu cầu get để localhost: 3000 /món ăn, và điều này,
như bạn mong đợi, sẽ gửi lại một câu trả lời nói rằng chúng tôi sẽ gửi tất cả các món ăn cho bạn.
Bây giờ, chúng ta hãy gửi một yêu cầu POST đến localhost:3000/món ăn.
Vì vậy, đây là nơi bạn có thể thay đổi các phương pháp khác nhau mà bạn muốn thực hiện.
Nhưng khi bạn gửi một bài đăng,
bạn muốn bao gồm một số chi tiết trong nội dung của thư bởi vì
có ai đó đang mong bạn gửi thông tin trong nội dung của thư.
Vì vậy, bấm vào cơ thể ở đây và bấm vào thô ở đây.
Và sau đó, đối với văn bản, bạn chọn điều này để JSON để
sử dụng ứng dụng JSON.
Vì vậy, loại nội dung sẽ là ứng dụng/JSON
trong yêu cầu mà bạn gửi.
Vì vậy, vì đây là một đối tượng JSON, vì vậy
trong niềng răng, tôi sẽ nói tên.
Tôi sẽ chỉ đơn giản là gõ vào bài kiểm tra,
và mô tả.
Một số thông tin tiêu chuẩn ở đây, vì vậy bạn thấy rằng đây là một chuỗi JSON
có chứa hai thuộc tính, tên và mô tả và các giá trị tương ứng.
Vì vậy, chúng ta hãy gửi một bài yêu cầu đến máy chủ.
Khi bạn gửi một yêu cầu bài đăng đến máy chủ, như bạn thấy,
trong bài trả lời nó nói sẽ thêm các món ăn: chi tiết tuần kiểm tra: mô tả.
Vì vậy, như bạn có thể thấy, hai mảnh thông tin được trích xuất từ cơ thể
của JSON yêu cầu [không nghe được] và sau đó bao gồm trong câu trả lời.
Hãy gửi một yêu cầu đặt cho các món ăn.
Khi bạn gửi một yêu cầu đặt cho các món ăn, như bạn thấy,
nó nói PUT hoạt động không được hỗ trợ trên /món ăn, và nhìn vào tình trạng ở đây.
Nó nói Tình trạng: 403 Cấm.
Vì vậy, thao tác này không được phép trên điểm cuối này.
Hãy thực hiện một thao tác DELETE trên các món ăn.
Khi bạn xóa hoạt động trên các món ăn,
sau đó bạn sẽ nhận thấy rằng nó nói xóa tất cả các món ăn.
Vì vậy, đó là câu trả lời mà bạn nhận được trở lại.
Vì vậy, bạn thấy rằng bài get, đặt và
xóa trên điểm cuối /dishes hoạt động như bạn mong đợi.
Bây giờ chúng ta hãy làm một get trên các món ăn /23.
Vì vậy, 23 đây là tham
số, ID của món ăn mà bạn muốn nhận được.
Vì vậy, khi bạn gửi một yêu cầu mà máy chủ sẽ trả lời,
sẽ gửi chi tiết của món ăn: 23 cho bạn.
Vì vậy, bạn thấy rằng tham số đã được trích xuất từ thư yêu cầu và
sau đó bao gồm trong thư trả lời.
Hãy làm một bài về vấn đề này.
Và như bạn đã biết, POST không được phép trên điểm cuối này, và vì vậy
đó là lý do tại sao bạn nhận được một trạng thái 403 Cấm về vấn đề này.
Hãy thực hiện một thao tác PUT về điều đó.
Vì vậy, đối với các hoạt động PUT, bạn nhận thấy rằng cơ thể vẫn chứa nó.
Vì vậy, trong POST, khi bạn nhập một giá trị ở đây,
nó sẽ được giữ lại và có thể được bao gồm trong các yêu cầu khác mà bạn đang gửi.
Vì vậy, khi bạn gửi một yêu cầu PUT trên điểm cuối, món dịch/23.
Vì vậy, bạn nhận thấy rằng nó nói cập nhật các món ăn, 23.
Sẽ cập nhật món ăn, tên của món ăn,
với các chi tiết, mô tả của món ăn ở đây.
Và sau đó, chúng ta hãy làm một thao tác xóa trên điểm cuối đó và
sau đó nó nói, d xóa món ăn: 23.
Vì vậy, tất cả các điểm cuối được hỗ trợ như bạn thấy trong ví dụ này ở đây.
Vì vậy, chúng tôi đã thực hiện nhận được PUT, POSRT, và xóa các hoạt động trên cả hai điểm cuối /dishes
và cũng là /dishes/ điểm cuối id món ăn.
Vì vậy, bạn thấy cách chúng tôi đã thực hiện hỗ trợ điểm cuối REST API cho
một tập hợp các điểm cuối REST API.
Bây giờ, với điều này, chúng tôi hoàn thành phần đầu của bài tập này.
Vì vậy, ở đây chúng ta đã thấy làm thế nào chúng ta có thể sử dụng express để xây dựng và
thực hiện các điểm cuối REST API cho các món ăn.
Bây giờ, đây là thời điểm tốt
để bạn thực hiện một cam kết git với thông điệp Express Simple REST.
Theo thiết bị đầu cuối tôi sẽ bắt đầu, máy chủ.
Kiểm tra xem ba trong số các mục đã được thay đổi.
Vì vậy, git thêm, git commit -m,
Express Simple REST, Và kiểm tra các thiết lập.
Vì vậy, như bạn có thể thấy, sử dụng Express bạn có thể dễ dàng thực hiện hỗ trợ cho REST API.
Và như bạn có thể thấy từ danh sách này, bạn xây dựng các ứng dụng get, PUT,
POST, và xóa các phương pháp cho tất cả các điểm cuối REST API như thế này.
Bây giờ hãy tưởng tượng bạn có một ngàn điểm cuối API REST,
và bạn cần phải xây dựng một cái gì đó như thế này.
Tệp index.js của bạn sẽ phát nổ với rất nhiều điểm cuối REST API khác nhau.
Và mỗi người được xử lý bằng cách sử dụng app.get,
app.put, app.delete và app.post của riêng mình.
Bây giờ Wxpress hỗ trợ một cách phân chia công việc này thành
nhiều, nhiều ứng dụng Express,
sau đó có thể kết hợp lại với nhau để tạo thành ứng dụng Express tổng thể.
Đây là nơi chúng tôi sẽ sử dụng Express Router
để có thể xây dựng một ứng dụng Express mini.
Và sau đó, bên trong một tập tin Express Router,
chúng tôi sẽ hỗ trợ điểm cuối REST API cho một nhóm các phần REST API.
Vì vậy, ví dụ, đối với các món ăn, và các món ăn DisHid,
tất cả chúng có thể được hỗ trợ trong một tập tin.
Tương tự như vậy, trong nhiệm vụ, bạn sẽ hỗ trợ một
điểm cuối API REST được gọi là chương trình khuyến mãi và chương trình/:PromoID.
Và sau đó, bạn sẽ hỗ trợ một REST API và
cho các nhà lãnh đại/nhà lãnh đạo, và /Leader:Leaderid.
Vì vậy, mỗi nhóm này có thể được thực hiện riêng biệt như nhiều
ứng dụng Express sử dụng Express Router.
Vì vậy, đó là những gì tôi sẽ minh họa cho bạn cho
các món ăn cuối cùng trong phần tiếp theo của bài tập này.
Vì vậy, để làm điều đó, chúng tôi nhận ra rằng nếu chúng tôi đặt tất cả các tập tin trong một thư mục duy nhất,
sau đó một lần nữa cấu trúc thư mục của bạn sẽ trông lộn xộn.
Vì vậy, sở thích của tôi là tạo một thư mục ở đây có tên là route.
Và thư mục tuyến đường này sẽ chứa tất cả các bộ định tuyến mà tôi sẽ
thiết kế bằng cách sử dụng Express Router.
Vì vậy, trong thư mục tuyến đường, tôi sẽ tạo ra một tập tin mới được gọi là
dishRouter.js.
Và tập tin dishRouter.js này sẽ chứa
việc thực hiện việc xử lý điểm cuối REST API cho
/dishes và /Dishes:DISHID điểm cuối.
Bây giờ làm thế nào để chúng ta sử dụng Express Router?
Hãy xem làm thế nào chúng ta có thể sử dụng nó.
Bây giờ Express Router đi kèm với Express, vì vậy chúng tôi không cần phải cài đặt một
mô-đun Node khác.
Thay vào đó, chúng tôi có thể làm việc với Express mà chúng tôi đã cài đặt.
Vì vậy, để làm điều đó, tại dấu nhắc đó, gõ, const express
= require ('express');.
Vì vậy, lưu ý rằng, vì đây là một ứng dụng mini,
chúng tôi vẫn yêu cầu thể hiện ngay cả trong tập tin dishRouter.js này.
Và từ kiến thức của bạn về các module Node, một khi bạn xác định một file mới,
nó sẽ trở thành module Node riêng của nó.
Và mô-đun Node này sau đó có thể được nhập vào index.js.
Vì vậy, bạn thấy kết nối đã có giữa cách chúng ta có thể tái cấu trúc
ứng dụng của chúng tôi thành nhiều tập tin bằng cách sử dụng các module Node.
Vì vậy, chúng tôi sẽ thiết lập yêu cầu Express, sau đó chúng tôi sẽ nói const
BodyParser yêu cầu ('cơ thể-phân tích cú pháp').
Vì vậy, chúng tôi đã cài đặt BodyParser trong các bước trước của bài tập,
vì vậy chúng tôi có thể sử dụng điều đó.
Bây giờ để sử dụng một bộ định tuyến Express,
hãy để tôi khai báo const DishRouter = Express.R.
và trên express, nó hỗ trợ giao diện router này, vì vậy chúng tôi sẽ chỉ đơn giản
nói Express.Router và điều này sẽ tuyên bố DishRouter là một bộ định tuyến Express.
Vì vậy, trong nhiều ứng dụng Express,
một cái nhìn sâu sắc ở đây tôi có thể xử lý rằng DishRouter mã liên quan ở đây.
Vì vậy, một khi tôi tuyên bố này một router trong Express, sau đó tôi có thể nói DishRouter.
Và sau đó trên DishRouter, nó hỗ trợ một phương thức gọi là phương thức route
, có thể lấy một điểm cuối như một tham số.
Vì vậy, tôi chỉ đơn giản là sẽ tuyên bố điểm cuối này a /.
Bây giờ, bạn đang tự hỏi, đó không phải là món ăn sao?
Bạn sẽ sớm thấy rằng tôi cần phải gắn kết
bộ định tuyến Express này trong tập tin index.js của tôi.
Vì vậy, trong tập tin index.js của tôi, tôi sẽ gắn kết bộ định tuyến nhanh này tại điểm cuối /dishes.
Gắn một bộ định tuyến nhanh,
một lần nữa, một khái niệm nữa mà tôi muốn bạn hiểu.
Một lần nữa, tôi sẽ minh họa điều đó cho bạn trong một thời gian ngắn.
Bây giờ, Dishrouter.route có nghĩa là bằng cách sử dụng phương pháp này,
chúng tôi đang tuyên bố điểm cuối tại một vị trí duy nhất.
Theo đó bạn có thể chuỗi tất cả có được, PUT, POST,
xóa các phương pháp đã làm router món ăn này.
Bây giờ, khi bạn nhìn vào index.js, hãy nhìn vào cách chúng tôi ngụ ý điều này.
Vì vậy, chúng tôi có app.all và sau đó /món ăn, app.get/món ăn và /món ăn.
Bây giờ, nếu bạn đã thực hiện một sai lầm, và app.post hướng dẫn của họ
/dishes thay vì nếu bạn chỉ cần gõ /dish, sau đó điều gì sẽ xảy ra?
Thao tác POST sẽ không được hỗ trợ trên các món ăn nhưng
sẽ được hỗ trợ trên điểm cuối /dish.
Để tránh vấn đề này, bộ định tuyến nhanh hỗ trợ điểm kết thúc tuyến đường này.
Trên điểm kết thúc tuyến đường,
bạn chỉ cần chỉ định điểm kết thúc mà bộ định tuyến này sẽ hoạt động.
Và sau đó, get put phần phương pháp xóa, điều này chỉ đơn giản là xích vào đó.
Vì vậy, nó sẽ là một nhóm các phương pháp thực hiện tất cả cùng nhau.
Vì vậy, đó là lý do tại sao họ sử dụng một bộ định tuyến Express.
Vì vậy, nó đi kèm với một vài
hỗ trợ rất hữu ích để đảm bảo rằng thực hiện của bạn là chính xác.
Vì vậy, bây giờ mà chúng ta sẽ làm điều đó như bộ định tuyến đĩa,
những gì tôi sẽ làm là tôi sẽ loại bỏ điều này từ đây.
Bây giờ, món ăn IDN chỉ ra, tôi sẽ để lại cho các
bạn như là một bài tập trong bài tập đầu tiên của bạn, nhưng
các món ăn cuối cùng, tôi sẽ cắt nó ra, tất cả các cách lên đến tất cả.
Tôi sẽ cắt điều này ra khỏi index.js5 và
để di chuyển đó vào DishRouter ở đây.
Bây giờ khi tôi chuyển nó vào DishRouter, tôi không cần ứng dụng này nữa.
Tôi chỉ đơn giản là chuỗi đó vào tuyến đường, vì vậy tôi sẽ chỉ đơn giản là nói .all và
sau đó tôi không còn cần định nghĩa điểm cuối này ở đó.
Đó là nó. Vì vậy,
nó sẽ nói .all và sau đó chúng ta sẽ nói req, res, tiếp theo.
Và điều này, tất cả đang hoạt động trên điểm cuối cụ thể này
đã được chỉ định ở đây.
Bây giờ, không chỉ vậy, chúng ta có thể chuỗi các phương pháp còn lại.
Vì vậy, đó là lý do tại sao bạn thấy rằng tôi đã loại bỏ dấu chấm phẩy từ đây.
Tôi sẽ xóa ứng dụng này và sau đó đính kèm nó vào đó.
Vì vậy, không nhận được cũng được thay đổi vào tuyến đường, và sau đó tôi có thể loại bỏ
phần này, xử lý sẽ vẫn chính xác giống như trước.
Vì vậy, tương tự, Tôi sẽ loại bỏ, Ứng dụng có.
Và sau đó một lần nữa, xóa nó khỏi bài đăng.
Và điều tương tự.
Để đặt, Và
để xóa, cùng một điều.
Vì vậy, lưu ý rằng không có dấu chấm phẩy ở đây
, ở đây hoặc ở đây, nhưng cái cuối cùng, xóa, sẽ có dấu chấm phẩy tại chỗ.
Vì vậy, nhóm này là một đơn vị duy nhất được thực hiện bằng cách sử dụng
bộ định tuyến đĩa trên bộ định tuyến đặc biệt này, và tất cả những được xích lại với nhau.
Và cũng có thể, tất nhiên, với xóa, tôi cần phải loại bỏ điểm kết thúc này.
Đó là nó, thấy, cấu trúc sạch sẽ của mã ở đây.
Vì vậy, về cơ bản, kết thúc thực hiện DishRouter, đúng,
hãy nhớ, DishRouter này được định nghĩa bên trong các tập tin dishRouter.js.
Bây giờ, tôi cần phải xuất khẩu này từ mô-đun nút này.
Vì vậy, để xuất khẩu này, tôi sẽ đi đến dưới cùng ở đây và
tôi sẽ nói module.exports và
nói, DishRouter.
Đó là nó.
Vì vậy, bây giờ, DishRouter của tôi đang xuất khẩu tất cả mọi thứ mà tôi cần.
Bây giờ, bạn đang nhìn vào điều này và nói, những gì về món ăn Colon.
Đó sẽ là một phần trong nhiệm vụ đầu tiên của anh.
Không chỉ vậy, bạn sẽ được triển khai cho
hai điểm cuối API REST bổ sung, các chương trình khuyến mãi và các nhà lãnh đạo.
Nhưng điều này đã cho bạn thấy cấu trúc của những gì một Express
router triển khai của res API hỗ trợ trông như thế nào.
Vì vậy, đây là cho Dishrouter.route.
Và một điều cuối cùng trước khi tôi quên,
chúng ta nên nói dishrouter.use (bodyParser.json ()).
Bây giờ một khi bạn đã hoàn thành việc thực hiện DishRouter,
bây giờ chúng ta có thể đi vào tập tin index.js.
Kể từ khi DishRouter này là một mô-đun nút, một mô-đun nút tốt vẫn.
Vì vậy, chúng ta cần phải nhập khẩu này vào ứng dụng của chúng tôi.
Vì vậy, ngay tại đây, tôi sẽ nhập khẩu const D
ishRouter là bằng yêu cầu.
Bây giờ kể từ khi đây là một mô-đun nút dựa trên tập tin,
tôi sẽ nói. /Routes/Dishrouter.
Và một khi tôi đã tuyên bố họ ở đó, sau đó tôi đi vào mật mã ở đây.
Và ngay đó, tôi nói app.use.
Và tôi gắn bộ định tuyến tại một điểm cuối.
Vậy làm thế nào để gắn kết bộ định tuyến?
Tham số đầu tiên ở đây, tôi sẽ chỉ định các món ăn gạch chéo.
Và tham số thứ hai, chỉ định DishRouter.
Và đó là nó.
Vì vậy, những gì điều này có nghĩa là trong ứng dụng thể hiện của tôi,
bất kỳ yêu cầu đến rằng món ăn gạch chéo điểm cuối sẽ được xử lý bởi DishRouter,
và điều đó sẽ được thực hiện bởi các mã có mặt ở đây, bởi
vì chúng tôi đã nói DishRouter tuyến đường, và do đó, nhận thấy rằng điều này nói gạch chéo,
do đó có nghĩa rằng điều này được gắn kết tại điểm cuối món ăn gạch chéo.
Vì vậy, đó là lý do tại sao bất cứ điều gì đến thông qua các món ăn gạch chéo sẽ được gửi đến điều này và
sẽ được xử lý bởi điều này.
Một gợi ý lớn cho bạn để suy nghĩ về cách bạn sẽ thực hiện
rằng điểm kết thúc id món ăn ruột kết.
Bạn vẫn sẽ sử dụng cùng một tập tin dishRouter.js để cũng thực hiện hỗ trợ cho
rằng, /Dishes/:Dishid điểm kết thúc.
Đó là một gợi ý lớn khác cho anh, được rồi.
Với những thay đổi này, chúng ta hãy lưu những thay đổi mà chúng tôi đã thực hiện
cho ứng dụng của chúng tôi và sau đó khởi động lại máy chủ của chúng tôi và
sau đó xem làm thế nào máy chủ của chúng tôi sẽ làm công việc của mình.
Đi đến thiết bị đầu cuối, hãy để tôi khởi động lại máy chủ đó bằng cách gõ npm start.
Và một khi máy chủ đang hoạt động và chạy, tôi sẽ đi đến người đưa thư và
gửi yêu cầu từ người đưa thư đến máy chủ này.
Đi đến người đưa thư, bây giờ tôi biết rằng máy chủ của tôi chỉ hỗ trợ
các món ăn điểm cuối, tôi đã thực hiện các món ăn ID một phần của nó.
Vì vậy, hãy để tôi gửi một yêu cầu get đến các món ăn địa phương và
bạn sẽ thấy rằng nó hoạt động chính xác như trước đây.
Bây giờ nếu bạn đã thực hiện một yêu cầu trước đó trong bài đăng sau đó bạn có thể chỉ cần nhấp vào đó và
sau đó gửi lại yêu cầu đó.
Đặt hoạt động không hoạt động, sau hoạt động, Làm việc như bạn thấy ở đó.
Và sau đó chúng ta hãy gây ra thao tác xóa trên các món ăn.
Và nó nói rằng xóa tất cả các món ăn như mong đợi.
Vì vậy, đây là việc thực hiện các hỗ trợ API còn lại bằng cách sử dụng bộ định tuyến nhanh.
Với điều này, chúng tôi hoàn thành nửa sau của bài tập này.
Đây là thời điểm tốt để bạn có thể làm một nhận xét get với router thông điệp Express.
Bây giờ chúng ta đã hoàn thành bài tập này, nơi chúng ta đã thấy cách Express có
thể được sử dụng để hỗ trợ thực hiện hỗ trợ điểm cuối Res API trên máy chủ
của chúng tôi, và cũng sử dụng bộ định tuyến Express,
đó là thời gian để chuyển sang nhiệm vụ đầu tiên mà sau bài học này.
[ NHẠC]