Như chúng ta đã hiểu từ bài giảng trước trong bài học này,
mục tiêu của chúng tôi trong bài học này là
tích hợp máy chủ REST API mà chúng tôi đã phát triển,
cùng với quyền truy cập vào cơ sở dữ liệu MongoDB.
Vì vậy, chúng tôi sẽ bắt đầu với máy chủ REST API
mà chúng tôi xây dựng trong bài học đầu tiên trong mô-đun này,
và sau đó đã học được cách tương tác từ
ứng dụng nút của chúng tôi với máy chủ MongoDB bằng cách sử dụng Mongoose,
chúng tôi sẽ được phát triển máy chủ REST API của chúng tôi hơn nữa để tích hợp
toàn bộ giữa yêu cầu khách hàng đến máy chủ,
tất cả các cách để hoạt động cơ sở dữ liệu tương ứng được thực hiện,
và sau đó xây dựng và gửi trả lời cho khách hàng đó từ trang web máy chủ của chúng tôi.
Để bắt đầu tất nhiên, trước tiên,
hãy vào thư mục máy chủ nhầm lẫn mà chúng tôi đã tạo ra
trong bài tập đầu tiên của mô-đun này trong bài học REST API,
và sau đó, trong thư mục nhầm lẫn,
chúng tôi đã xây dựng máy chủ REST API.
Bây giờ, những gì chúng tôi sẽ làm là mượn
các mô hình mà chúng tôi đã phát triển trong bài tập trước,
tập tin dishes.js mà chúng tôi đã phát triển trong bài tập trước,
sao chép vào dự án máy chủ nhầm lẫn,
và cũng có thể cài đặt Bluebird Mongoose,
và một mô-đun khác được gọi là Mongoose tiền tệ, để dự án của chúng tôi.
Vì vậy, đi đến thư mục nút JS của
chúng tôi, đầu tiên chúng ta đi vào thư mục nút Mongoose,
và chúng ta thấy rằng trong thư mục con mô hình của thư mục nút Mongoose,
chúng ta có tệp dishes.js.
Tôi sẽ chỉ sao chép thư mục mô hình,
và sau đó đi qua thư mục máy chủ nhầm lẫn,
và sau đó chỉ cần xuyên qua thư mục mô hình trong đó.
Vì vậy, một khi chúng tôi làm điều đó,
sau đó các tập tin dishes.js có chứa giản đồ và mô hình cho các món ăn tài liệu,
được tích hợp vào máy chủ REST API của chúng tôi.
Tất nhiên, để tận dụng điều đó,
chúng ta cần cài đặt mô-đun nút Mongoose,
và một mô-đun nút mới được gọi là tiền tệ Mongoose vào dự án của chúng tôi.
Vì vậy, đi đến thiết bị đầu cuối trong dự án máy chủ nhầm lẫn,
hãy chắc chắn rằng thiết bị đầu cuối của bạn hoặc cửa sổ lệnh nằm
trong dự án máy chủ nhầm lẫn nơi bạn phát triển API REST trước đó,
và trong dự án này, hãy cài đặt.
Vì vậy, chúng tôi sẽ làm npm cài đặt Mongoose,
và sau đó, một mô-đun nút mới được gọi là tiền tệ Mongoose.
Mô-đun nút tiền tệ Mongoose,
và nhìn thấy trong loại Schema khác để ứng dụng Mongoose của chúng tôi,
vì vậy các Mongoose chính nó,
đã chắc chắn đã được xây dựng trong các loại Schema.
Chúng ta đã thấy việc sử dụng
số, chuỗi và boolean, và mảng.
Bây giờ, đồng tiền Mongoose thêm vào hỗ trợ tiền tệ.
Bây giờ, tại sao chúng ta cần hỗ trợ tiền tệ này?
Vì vậy, mô-đun tiền tệ Mongoose thêm một loại mới được gọi là loại tiền tệ,
cho phép chúng tôi lưu trữ một giá trị tiền tệ.
Vì món ăn của chúng tôi sẽ chứa một mức giá,
đó là lý do tại sao tôi sẽ sử dụng mô-đun tiền tệ Mongoose ở đây.
Bây giờ, bài tập ở đây,
chúng tôi sẽ minh họa việc sử dụng các mô-đun tiền tệ Mongoose,
bạn có thể đọc thêm chi tiết về mô-đun nút tiền tệ Mongoose cũng,
trong tài liệu về một liên kết mà được cung cấp trong các nguồn lực bổ sung.
Vì vậy, bây giờ chúng ta đã cài đặt các module nút,
Mongoose và tiền tệ Mongoose, chúng
ta hãy đi đến ứng dụng của chúng tôi và thiết lập nó để giao tiếp với máy chủ MongoDB.
Bây giờ, hãy chắc chắn rằng máy chủ MongoDB của bạn đang hoạt động và chạy.
Vì vậy, ở đây, bạn thấy rằng
máy chủ MongoDB của tôi đang chạy trong một tab thiết bị đầu cuối trên máy tính của tôi.
Nếu bạn đang chạy nó trên một máy Windows,
hãy chắc chắn rằng nó đang chạy trong một lệnh khác Cửa sổ máy tính Windows của bạn.
Đi đến ứng dụng của chúng tôi trong trình soạn thảo,
trước tiên chúng tôi sẽ bắt đầu với tệp app.js.
Bây giờ trong tập tin app.js,
đây là nơi chúng tôi xây dựng ứng dụng nhanh của chúng tôi trước đó.
Nhưng bây giờ, sự phủ định hút thêm này không được kết nối với máy chủ MongoDB back-end.
Chúng tôi sẽ sử dụng mô-đun Mongoose,
để thiết lập kết nối với máy chủ.
Vì vậy, đi vào đây,
tôi sẽ thêm vào yêu cầu mô-đun Mongoose ở đây.
Vì vậy, chúng ta sẽ nói, “Const Mongoose yêu cầu Mongoose.”
Và sau đó cũng, vì chúng tôi đã sao chép qua thư mục mô hình,
chứa tệp đĩa,
trong đó tuyên bố lược đồ món ăn và mô hình.
Vì vậy, để tôi nhập khẩu các món ăn.
Vì vậy, chúng ta sẽ nói, “Require.Slash mô hình các món ăn.”
Vì vậy, một khi chúng tôi đã hoàn thành điều đó, bây giờ tất nhiên,
chúng ta cần thiết lập kết nối với máy chủ.
Vì vậy, thiết lập
URL mongodb// localhost7017/nhầm lẫn,
giống như chúng tôi đã làm với bài tập Mongoose,
và sau đó chúng tôi sẽ nói,
“Const kết nối, URL kết nối của Mongo”.
Vì vậy, đây là chính xác cùng một mã mà chúng tôi đã sử dụng trong bài tập trước đó.
Sau đó, chúng ta hãy thiết lập kết nối.
Vì vậy, chúng tôi sẽ nói, “kết nối” và sau đó chúng tôi sẽ nói,
“DB làm điều đó giao diện điều khiển log.”
Nói rằng, “Kết nối đúng với máy chủ.”
Và chúng tôi cũng sẽ xử lý lỗi ở đây.
Chúng tôi sẽ chỉ đơn giản là làm một bản ghi giao diện điều khiển lỗi ở đây, đó là nó.
Điều đó sẽ thiết lập kết nối với máy chủ từ tệp app.js của chúng tôi.
Vì vậy, một khi chúng tôi đã thiết lập kết nối với máy chủ,
sau đó, chúng ta hãy mở tập tin dishes.js từ các mô hình của chúng tôi.
Bây giờ, trong tập tin dishes.js,
để sử dụng
mô-đun nút mà chúng tôi vừa cài đặt.
Vì vậy, chúng ta sẽ nói, “Yêu cầu tiền tệ Mongoose”, và nói,
“Tải loại và Mongoose.”
Vì vậy, điều này sẽ làm là tải loại tiền tệ mới này vào Mongoose.
Sau đó, chúng ta có thể nói const,
tiền tệ Mongoose loại tiền tệ.
Đó là nó. Vì vậy, loại mới này,
loại tiền tệ được thêm vào Mongoose và đó sẽ thêm vào một loại mới được gọi là
tiền tệ và sau đó vì vậy tôi sẽ tuyên bố loại
tiền tệ liên tục này là loại tiền tệ của Mongoose.
Vì vậy mà tôi có thể sử dụng điều này trong việc xác định giản đồ trong ứng dụng của tôi.
Bây giờ, trong trường hợp này,
giản đồ phổ biến sẽ vẫn giống hệt như trước đây nhưng
giản đồ món ăn như bạn nhớ lại từ tập tin db.json.
Khi bạn nhìn vào cấu trúc của một tài liệu món ăn,
bạn thấy rằng tài liệu món ăn chứa tên và hình ảnh mà bạn thấy ở đây là một chuỗi,
một danh mục, một nhãn,
một giá cả, mà là một loại chuỗi ở đây.
Nhưng chúng tôi sẽ tuyên bố điều này như là một loại tiền tệ,
một tính năng mà như bạn mong đợi là một biến Boolean,
và một mô tả mà là một chuỗi và sau đó nhận xét
mà là không có gì ngoài một mảng của loại ý kiến.
Bây giờ, vì vậy những gì chúng ta sẽ làm bây giờ là mở rộng giản đồ món ăn để
hỗ trợ tất cả các thuộc tính khác nhau hoặc các lĩnh vực khác nhau trong tài liệu json của tôi.
Vì vậy, chúng tôi đã có tên.
Vì vậy, chúng tôi đã có mô tả tại chỗ.
Vì vậy, chúng ta cần phải thêm trong vài tiếp theo trong đó chúng tôi đã có các ý kiến,
mảng ý kiến của kiểu giản đồ bình luận ở đó.
Vì vậy, chúng tôi sẽ thêm vào trong vài tiếp theo.
Vì vậy, một trong những tiếp theo chúng tôi sẽ thêm vào là loại hình ảnh,
mà sẽ là
của chuỗi loại và
chúng tôi sẽ nói yêu cầu true.
Vì vậy, điều này cho biết thêm các loại hình ảnh.
Tiếp theo mà tôi sẽ thêm là thể loại
, cũng là loại chuỗi.
Cái tiếp theo là nhãn
, cũng là loại chuỗi này.
Vì tất cả những thứ này cùng loại và bắt buộc,
tôi chỉ sao chép chúng ở đây.
Sau đó, đối với nhãn,
tôi sẽ nói rằng điều này là không bắt buộc nhưng
thay vào đó tôi cũng có thể chỉ định một giá trị mặc định nếu tôi muốn.
Vì vậy, tôi có thể chỉ định một giá trị mặc định như thế.
Giá trị mặc định là một chuỗi rỗng.
Vì vậy, nếu tôi không chỉ định yêu cầu tôi chỉ có thể chỉ định một giá trị mặc định ở đây.
Bây giờ, ngoài ra, lĩnh vực tiếp theo mà tôi sẽ giới thiệu là lĩnh vực giá.
Trường giá tôi sẽ khai báo loại là tiền tệ.
Nhớ lại rằng chúng tôi đã tuyên bố loại tiền tệ trước đó
ở đây bằng cách đầu tiên yêu cầu
mô-đun tiền tệ Mongoose và sau đó khai báo loại tiền tệ.
Vì vậy, đó là cách bạn sẽ sử dụng loại tiền tệ trong ứng dụng của chúng tôi.
Vì vậy, chúng tôi sẽ nói loại tiền tệ giá và
bắt buộc là đúng và sau đó tôi cũng có thể xác định giá trị tối thiểu đó sẽ là zero.
Sau đó, trường tiếp
theo là trường nổi bật sẽ thuộc loại Boolean,
và giá trị mặc định sẽ là false.
Vì vậy, nếu tài liệu của tôi bị thiếu,
sau đó giá trị mặc định sẽ được thêm vào tài liệu ở đây.
Vì vậy
, lưu ý rằng bây giờ tôi đã mở rộng lược đồ món ăn bằng cách thêm vào loại hình ảnh, thể loại,
nhãn, giá cả và tính năng để phù hợp với
cấu trúc của ví dụ tài liệu món ăn mà tôi vừa cho bạn thấy trước đó.
Vì vậy, bây giờ, lược đồ món ăn của tôi đã sẵn sàng để được sử dụng.
Vì vậy, bây giờ chúng ta hãy bắt đầu làm việc trên bộ định tuyến của tôi.
Vậy bộ định tuyến ở đâu?
Bạn nhớ lại rằng bộ định tuyến hỗ trợ các điểm cuối REST API cho các món ăn gạch chéo, điểm
cuối REST API và các món ăn
gạch chéo, điểm cuối ID món ăn nằm trong bộ định tuyến món ăn.
Vì vậy, chúng tôi sẽ đi đến router.jsfile món ăn và sau đó chúng tôi sẽ mở rộng tập tin router.js món ăn.
Vì vậy, trong bộ định tuyến món ăn cùng với Express và BodyParser,
bây giờ tôi sẽ bao gồm Mongoose.
Vì vậy, chúng tôi sẽ nói yêu cầu Mongoose và
sau đó chúng tôi sẽ yêu cầu mô hình món ăn.
Mô hình món ăn ở đâu?
Nó đang ở trong. /mô hình/món ăn.
Vì vậy, nó ở trong đó.
Vì vậy, lưu ý rằng chúng tôi đang ở trong thư mục của bộ định tuyến,
vì vậy bạn cần phải đi lên một cấp độ và sau đó đi
vào thư mục của mô hình và sau đó tập tin dishes.js là ngay ở đó.
Vì vậy, đó là những gì chúng tôi đang nhập khẩu ở đây.
Vì vậy, bây giờ, tôi có thể cập nhật bộ định tuyến món ăn của tôi để có thể tương tác
với máy chủ
MongoDB bằng cách sử dụng Mongoose và chúng tôi đã nhập khẩu mô hình món ăn vào bộ định tuyến món ăn của tôi.
Vì vậy, đó là thời gian cho tôi để đi và cập nhật tất cả các phương pháp trong đây.
Vì vậy, đối với các bộ định tuyến món ăn,
dấu gạch chéo có nghĩa là các món ăn gạch chéo điểm cuối.
Tôi sẽ loại bỏ tất cả điều này từ đây, thay vào đó,
tôi sẽ tuyên bố rõ ràng tất cả các điểm cuối khác nhau.
Để có được bài đặt và xóa tôi sẽ xử lý mỗi một trong số họ một cách độc lập.
Vì vậy, trong phương pháp get,
tôi sẽ cắt ra và sau đó trong phương pháp get, tôi cần phải làm gì?
Nhớ lại rằng chúng tôi đã xác định phương pháp từ Mongoose cho phép chúng tôi tìm thấy tất cả các món ăn.
Vì vậy, khi bạn thực hiện một hoạt động get trên điểm cuối món ăn gạch chéo,
bạn đang mong đợi tất cả các món ăn được trả lại
cho khách hàng để đáp ứng với yêu cầu get.
Vì vậy, tôi sẽ đi đến các món ăn và sau đó thực hiện các hoạt động tìm kiếm.
Vì vậy, bây giờ bạn thấy rằng từ máy chủ Express của tôi,
tôi đang truy cập MongoDB của tôi.
Vì vậy, sẽ làm một phát hiện và trong tìm thấy tôi sẽ bây giờ xử lý các yêu cầu.
Vì vậy, tôi có thể nói món ăn tìm thấy,
vì nó sẽ trả lại một lời hứa,
sau đó tôi có thể xử lý nó bên trong đây.
Vì vậy, tôi sẽ nói món ăn và vì vậy nếu lời hứa giải quyết một cách chính xác,
tôi sẽ nhận được nó trong sau đó và vì vậy tôi sẽ nói món ăn và sau đó vì vậy chúng tôi sẽ xử lý
mã trạng thái res là 200 và sau đó chúng tôi sẽ nói
res thiết lập tiêu đề loại nội dung.
Kể từ khi chúng ta sẽ được trả về giá trị như một json,
vì vậy chúng tôi sẽ thiết lập để ứng dụng json.
Được rồi, điều này sẽ trả lại một loạt các món ăn.
Vì vậy, tôi chỉ có thể nói các món ăn và sau đó chúng tôi sẽ nói res.json.
Vì vậy, res.json sẽ mất như một đầu vào trong json string
và sau đó gửi nó trở lại cho khách hàng của tôi.
Vì vậy, khi bạn gọi res.json và cung cấp giá trị và sau đó nó sẽ chỉ đơn giản là
lấy tham số mà bạn cung cấp ở đây và sau đó gửi nó trở lại như một phản ứng json.
Nó sẽ đưa các món ăn này vào trong cơ thể
của tin nhắn trả lời và sau đó gửi nó trở lại máy chủ.
Bây giờ, chúng ta có thể xử lý lỗi
ở đây bằng cách nói lỗi tiếp theo.
Chúng tôi cũng có thể làm một lỗi bắt chỉ vì lợi ích của hoàn thành.
Tôi sẽ chỉ đặt cả hai cái này vào vị trí ở đây,
để cả hai sẽ được xử lý như vậy.
Vì vậy, nếu một lỗi được trả lại,
sau đó sẽ chỉ đơn giản là vượt qua lỗi để
xử lý lỗi tổng thể cho ứng dụng của tôi
và để cho rằng lo lắng về làm thế nào để xử lý các lỗi.
Vì vậy, chúng tôi sẽ gửi nó cho điều đó.
Vì vậy, bạn thấy làm thế nào tôi đang sử dụng các hoạt động tìm và sau đó thực hiện các yêu cầu ở đây.
Bây giờ, cho bài đăng,
như bạn đã mong đợi,
tôi sẽ làm món dịch.Create
bởi vì chúng tôi sẽ tạo ra một món ăn mới ở đây.
Vì vậy, nhớ lại rằng chúng ta đã được nhìn thấy các món ăn tạo ra
phương pháp sử dụng trước đó và nhớ rằng phân tích cú pháp cơ thể sẽ
đã phân tích bất cứ điều gì là trong cơ thể của thông điệp và nạp nó
vào tài sản cơ thể của yêu cầu.
Vì vậy, tôi chỉ đi để lấy cơ thể yêu cầu và sau đó phân tích cú pháp nó trong như một tham số để
phương pháp dishes.create của tôi và xử lý giá trị trả về.
Vì vậy, chúng tôi sẽ nói sau đó và nó sẽ trả lại
một món ăn và chúng tôi sẽ xử lý nó ở đây.
Vì vậy, chúng tôi sẽ nói nếu các món ăn trở lại một cách chính xác và nếu các món ăn được đăng chính xác, sẽ nói res.
Được rồi, chúng ta hãy làm một console.log cho việc sử dụng riêng của chúng ta.
Ở phía máy chủ chúng tôi sẽ làm một console.log nói “Dish Created” món ăn ở đây.
Hãy đăng nhập món ăn đó vào giao diện điều khiển và sau đó chúng tôi sẽ nói hai mã trạng thái nghỉ ngơi này.
Chúng tôi sẽ chỉ sao chép mã đó và sau đó dán nó vào đó và trong trường hợp này,
chúng tôi đang trả lại món ăn ở đây.
Các món ăn đã đến như một tham số ở đây và sau đó để cho
khách hàng đối phó với giá trị đó ở phía khách hàng,
bất cứ điều gì được trả lại trong món ăn.
Bây giờ, họ cũng sẽ thêm vào
đây và sau đó là bắt.
Vì vậy, đây là cách chúng tôi xử lý bài đăng.
Đối với PUT, bởi vì PUT không được phép, vì
vậy chúng tôi sẽ để nó như vậy.
Đối với DELETE, chúng tôi sẽ xóa tất cả các món ăn.
Vì vậy, chúng ta sẽ nói, “Dất.Bỏ đi.”
Đây thực chất là một hoạt động nguy hiểm.
Vì vậy, bạn đang loại bỏ tất cả các món ăn từ
máy chủ và vì vậy chúng tôi sẽ nói,
“Dishes.Remove then” và “then” sẽ nhận được một số phản ứng.
Vì vậy, chúng tôi sẽ chỉ nói, “resp ở đây” và cách chúng tôi sẽ xử lý
phản ứng đó chỉ đơn giản là lấy giá trị đó và sau đó trả lại cho khách hàng.
Vì vậy, chúng tôi sẽ nói, “res.StatusCode 200 loại nội dung ứng dụng json,” và
sau đó chúng tôi sẽ chỉ đơn giản gửi phản hồi trở lại cho khách hàng và chúng tôi sẽ xử lý các lỗi
giống như chúng tôi đã làm trước đó.
Đó là thao tác DELETE.
Vì vậy, bạn thấy rằng bây giờ chúng tôi đang làm GET,
POST, PUT và các hoạt động DELETE.
Bây giờ chúng ta sẽ tiếp tục cùng với điểm kết thúc /disHid.
Vì vậy, trong trường hợp này,
chúng tôi đặc biệt motif nhận được một món ăn cụ thể.
Chúng ta sẽ trả lại giá trị món ăn cụ thể đó.
Vì vậy, trong GET,
những gì chúng ta làm là chúng ta sẽ nói “Dishes.FindbyID.
Vì vậy, FindByID là một phương pháp có sẵn từ mongo cũng như trình điều khiển MongoDB.
Vì vậy, chúng ta sẽ nói,” Req.params.Dishid.”
Nhớ lại rằng chúng ta đã biết rằng ID món ăn có trong tài sản params.
Bạn đã học được về điều này trước đó.
Vì vậy, tôi sẽ nói, “findByID (Req.params.dishid)” và
sau đó và khác.
Vì vậy, tôi chỉ sẽ sao chép điều đó sau đó và người khác từ ngay
đó và sau đó đi xuống DishRouter và
sau đó chỉ cần dán nó vào đây.
Vì vậy, chúng tôi sẽ nói, "res.StatusCode200
ứng dụng json.res.jsondish và sau đó xử lý lỗi.
Đối với POST, rõ ràng chúng tôi sẽ không được xử lý các bài đăng cho một điểm cuối /disHid.
Vì vậy, chúng ta sẽ để nó như vậy.
Đối với PUT, chúng tôi sẽ cập nhật
một món ăn cụ thể được xác định bởi ID món ăn của nó.
Vì vậy, đây là nơi chúng tôi sẽ sử dụng các món ăn. FindByidanDupdate.
Vì vậy, đây là phương pháp mà chúng ta sẽ được sử dụng,
findByidanDupDate và điều này mất như là tham số đầu tiên
req.params.dishid và giá trị thứ hai là
thiết lập và cập nhật
sẽ được trong nội dung của thông điệp.
Vì vậy, tôi chỉ sẽ lấy từ
cơ thể req và sau đó cũng là lá cờ khác mà tôi sẽ có.
Vì vậy, sẽ nói, “new: true”, để phương pháp findByID này sẽ trả về
các món ăn được cập nhật như một chuỗi json trong bài trả lời.
Vì vậy, đó là những gì tôi sẽ nhận được ở đây và sau đó khi giá trị đó đến,
tôi sẽ chỉ lấy món ăn và
sau đó chỉ đơn giản là trả lại món ăn cho phía khách hàng.
Vì vậy, tôi sẽ nói res.jason (món ăn) và sau đó chúng tôi sẽ xử lý các lỗi tương ứng.
Cuối cùng cho DELETE.
Đối với DELETE một lần nữa,
phương pháp tương ứng mà chúng ta sẽ được
sử dụng là phương pháp của Mongo gọi là findByIdAndRemove.
Vì vậy, bạn có thể thấy rằng chúng tôi có phương pháp này gọi là
findByidandRemove và này findByidandRemove,
sẽ mất req.params.dishid bởi vì đó là món ăn mà chúng tôi đang cố gắng để loại bỏ.
Sau đó, khi điều này bị xóa,
vì vậy giống như chúng tôi xử lý điều này ở đây,
vì vậy tôi sẽ chỉ sao chép mã này từ các món dịch.Remove.
Là điều tương tự mà tôi sẽ làm ở đây cũng.
Vì vậy, FindByidandRemove và bất cứ phản ứng nào
tôi nhận được, tôi sẽ trả lại cho khách hàng của tôi.
Với điều này, chúng tôi đã cập nhật DishRouter.
Hãy lưu tất cả các thay đổi mà chúng tôi đã thực hiện cho
đến nay và sau đó chúng tôi sẽ đi và khởi động máy chủ của chúng tôi và sau đó xem những gì nó làm.
Vì vậy, đi đến thiết bị đầu cuối hoặc cửa sổ lệnh, khởi động máy chủ.
Vì vậy, tôi sẽ nói “npm start” và máy chủ bây giờ đã lên và chạy.
Chúng ta sẽ dùng người đưa thư để liên lạc với máy chủ này.
Vì vậy, chúng ta hãy đi đến người đưa thư và sau đó thực hiện các hoạt động nhất định.
Ở đây bạn thấy người đưa thư của tôi đang chạy ở đây.
Vì vậy, hãy để tôi thực hiện một hoạt động GET trên localhost:3000/món ăn.
Vì vậy, khi bạn thực hiện một hoạt động GET như bạn thấy,
nó sẽ trả về một chuỗi rỗng.
Cơ sở dữ liệu của tôi bây giờ trống vì vậy tôi không có bất cứ điều gì ở đó.
Vì vậy, tôi sẽ chỉ được trả về một chuỗi trống.
Hãy đăng một món ăn.
Vì vậy, khi bạn đăng một món ăn,
rõ ràng trong cơ thể,
bạn sẽ được bao bọc một món ăn và cơ thể sẽ được thiết lập để là loại json ứng dụng.
Bây giờ, để đăng một món ăn,
tôi đã cung cấp cho bạn các tập tin db.json trong các tài nguyên tập thể dục.
Vì vậy, chỉ cần mở tập tin db.json và sau đó sao chép các món ăn đầu tiên từ
đó và sau đó chúng tôi sẽ dán nó vào đây và sau đó gửi món ăn đó.
Vậy, hãy để tôi xem hồ sơ db.jason.
Để tôi sao chép món ăn đầu tiên từ đây.
Vì vậy, tôi sẽ chỉ sao chép
toàn bộ món ăn tất cả các cách lên đến đó và sau đó tôi sẽ đăng món ăn này.
Điều này chứa rất nhiều lĩnh vực mà chúng tôi đã có ở đây.
Hãy đăng món ăn này lên máy chủ và xem điều gì sẽ xảy ra.
Vì vậy, quay lại với người đưa thư.
Ở đây, trong dữ liệu hình thức,
trong cơ thể, để tôi dán các món ăn vào vị trí.
Vì vậy, chúng tôi có đầy đủ các chi tiết của món ăn ở đó.
Hãy đăng món ăn này lên máy chủ.
Sau đó, một khi món ăn được đăng lên máy chủ,
bạn thấy rằng Postman có,
hãy để tôi thu nhỏ lại,
và sau đó bạn thấy ở dưới cùng rằng món ăn đặc biệt này đã được đăng lên cơ sở dữ liệu,
đến cơ sở dữ liệu MongoDB bởi máy chủ của tôi.
Vì vậy, bạn thấy rằng giá trị trả về
ở đây cho thấy khi đĩa được chèn vào máy chủ đó.
Vì vậy, bạn có CreateDat và UpdateDat thêm vào đó.
Bạn thấy rằng các trường còn lại đều được lưu trữ ở đó.
Lưu ý đặc biệt như thế nào giá trị đang được lưu trữ ở đó.
Đây là cách tiền tệ lưu trữ giá trị.
Vì vậy, khi bạn nhận được giá trị trả về,
bạn cần phải giải thích điều này một cách thích hợp ở phía khách hàng của bạn có nghĩa là gì.
Cũng lưu ý rằng ID đã được thêm vào món ăn của tôi và cho mỗi bình luận chính nó,
bởi vì mỗi ý kiến là chính nó là một tài liệu phụ.
Bạn sẽ có UpdateDat và CreateDat thêm,
và ID cho mỗi ý kiến cũng được thêm vào trong đó tự động bởi cơ sở dữ liệu của tôi.
Đây rồi. Vì vậy, bây giờ,
món ăn này đã được thêm vào cơ sở dữ liệu của tôi.
Hãy một lần nữa thực hiện các hoạt động GET,
và rõ ràng tại thời điểm này,
máy chủ sẽ trả lại rằng một món ăn cụ thể đã được thêm vào.
Vì vậy, nó sẽ trả lại một mảng các món ăn ở đây,
vì vậy như bạn có thể thấy, nó trả lại một mảng các món ăn.
Tất nhiên, mảng này chỉ chứa một món ăn
hoặc món ăn đặc biệt đó đã được trả lại ở đây.
Cho đến nay, rất tốt.
Vì vậy, chúng ta hãy làm một PUT trên các món ăn và xem những gì xảy ra.
Khi bạn làm một PUT, rõ ràng, nó nói,
“PUT hoạt động không được hỗ trợ trên các món ăn”, như chúng ta mong đợi.
Hãy làm một DELETE.
Làm một thao tác DELETE,
nó trả về phản ứng này nói,
“N bằng một”, okay,
một nghĩa là nó đã xóa một món ăn.
Bây giờ hãy một lần nữa, thực hiện một thao tác GET,
và sau đó bạn sẽ thấy rằng các món ăn của tôi trống rỗng như chúng tôi mong đợi.
Vì vậy, bạn thấy rằng các hoạt động GET, PUT, POST
và DELETE đều hoạt động chính xác.
Bây giờ, hãy để tôi POST món ăn một lần nữa
lên máy chủ bởi vì tôi muốn có một món ăn trong máy chủ.
Vì vậy, hãy để tôi POST món ăn đó,
và bạn sẽ nhận thấy rằng ID bây giờ đã thay đổi.
Vì vậy, hãy để tôi chọn ID đó,
và sau đó chúng tôi sẽ làm một GET với ID tại chỗ.
Khi bạn làm một GET với ID tại chỗ,
bạn thấy rằng nó trả về món ăn cụ thể như bạn mong đợi nó.
Hãy đi đến thiết bị đầu cuối và xem những gì
đang được in trên thiết bị đầu cuối hoặc cửa sổ lệnh của bạn.
Vì vậy, đi đến thiết bị đầu cuối hoặc cửa sổ lệnh của
bạn, bạn thấy rằng nó đang in ra tất cả những điều này trên cửa sổ lệnh.
Vì vậy, khi chúng tôi đã thực hiện các hoạt động GET đầu tiên,
nó nói, GET /món ăn.
Vì vậy, đây là một lần nữa,
Morgan làm công việc này cho bạn, nó được in ra,
truy tìm thông tin này và nó nói món ăn tạo ra
và sau đó rằng thông tin món ăn đặc biệt đã được in,
và sau đó nó nói POST /món ăn, GET /món ăn,
và sau đó khi bạn đã làm một PUT nó trở lại một 403
có và bạn lại tạo ra các món ăn và vân vân.
Vì vậy, bạn thấy rằng máy chủ của bạn đang thực sự làm tất cả các công việc,
và những điều này đang được chèn vào cơ sở dữ liệu MongoDB của bạn như bạn mong đợi.
Bây giờ, trở lại với Postman,
chúng ta hãy làm một bài đăng trên các món ăn.
Bây giờ, điều này không được hỗ trợ ở phía máy chủ,
vì vậy máy chủ của bạn nên nói,
“POST thao tác không được hỗ trợ trên điểm cuối cụ thể đó”, như bạn có thể mong đợi nó.
Hãy thực hiện một thao tác PUT.
Khi bạn thực hiện một thao tác PUT,
những gì tôi sẽ làm trong thao tác PUT là tôi sẽ
thay thế nhãn trong đó.
Vì vậy, trong cơ thể của tôi của thông điệp.
Vì vậy, nhớ lại rằng nếu bạn nhìn vào các tập tin DB.json,
nhãn cho rằng sẽ là mới,
và vì vậy tôi sẽ thay đổi nhãn đó để nóng.
Kể từ khi điều này cần phải được trong Json,
vì vậy nhãn cũng trong dấu ngoặc kép Json nhãn nóng,
và sau đó chúng ta hãy làm một PUT lên trên rằng điểm cuối cụ thể.
Hoạt động PUT đã thành công,
và vì vậy bạn thấy rằng khi thao tác PUT đã được thực hiện,
sau đó bạn sẽ nhận thấy rằng nhãn bây giờ đã thay đổi từ mới sang nóng ở đây,
và lưu ý đặc biệt,
giá trị CreateDat và giá trị UpdateDat.
Vì vậy, lưu ý rằng hồ sơ này đã được tạo ra
tại thời điểm này và đã được cập nhật một chút sau đó.
Vì vậy, bản cập nhật đã được thực hiện bởi hoạt động PUT mà tôi vừa
thực hiện trên món ăn đặc biệt đó.
Hãy xóa món ăn.
Điều này được cho phép. Vì vậy, chúng tôi sẽ xóa các món ăn,
và sau đó các món ăn sẽ bị xóa và giá trị sẽ được trả lại.
Bây giờ, nếu bạn thực hiện một hoạt động GET trên
điểm cuối món ăn, bạn sẽ thấy rằng điều này sẽ trả về một sản phẩm nào.
Vì vậy, bạn vừa quản lý để xóa các món ăn từ cơ sở dữ liệu của chúng tôi.
Những gì tôi sẽ làm là thực hiện
một thao tác GET trên một món ăn không tồn tại và xem những gì xảy ra.
Khi tôi thực hiện một thao tác GET trên món ăn không tồn tại,
nó trả về null vì món ăn đó không tồn tại.
Vì vậy, nó trả về một giá trị null nói rằng món ăn không tồn tại.
Bây giờ, hãy để tôi thực hiện một thao tác GET trên một non-ObjectID và xem điều gì sẽ xảy ra.
Nó trở lại như bạn thấy.
Để tôi xem trước.
Vì vậy, nó nói, “Cast to ObjectID thất bại cho giá trị ở đây tại đường dẫn.”
Vì vậy, tôi sẽ rõ ràng đây không phải là
một đối tượng hợp lệ vì vậy tôi chỉ quản lý để xóa một phần của nó,
và sau đó thực hiện các hoạt động để nó trả về một lỗi nói,
vì vậy bạn thấy có 500 lỗi máy chủ nội bộ.
Các máy chủ đã không thể xử lý điều này và sau đó trả về giá trị này ở đây.
Vì vậy, nó nói, “Không,
điều này không được phép.”
Vì vậy, bởi vì đó không phải là một đối tượng hợp lệ.
Vì vậy, ngay cả các lỗi cũng được xử lý một cách thích hợp như bạn thấy ở đây.
Vì vậy, hãy để tôi một lần nữa, thực hiện một hoạt động GET trên các món ăn,
và máy chủ của bạn vẫn đang chạy,
và nó sẽ trả về một giá trị trống ở đây.
Vì vậy, chúng ta đã thấy làm thế nào bằng cách sửa đổi
máy chủ REST API của chúng tôi để có thể tương tác với máy chủ MongoDB.
Bây giờ chúng tôi có một máy chủ REST API đầy đủ có thể lưu trữ,
và truy xuất, và thực hiện các hoạt động khác nhau
trên dữ liệu được lưu trữ trên máy chủ MongoDB của tôi.
Với điều này, chúng tôi hoàn thành bài tập này.
Vì vậy, trong bài tập này,
chúng ta đã thấy làm thế nào chúng ta có thể tương tác với máy chủ REST API của chúng tôi
, và lần lượt, với máy chủ MongoDB,
và sau đó chúng tôi đang tận dụng máy chủ MongoDB để lưu trữ và truy xuất dữ liệu từ máy chủ.
Bạn có thể tương tác từ
ứng dụng Express của chúng tôi với máy chủ MongoDB bằng cách sử dụng Mongoose.
Đây là thời điểm tốt để bạn thực hiện một cam kết GIT với thông báo,
“Express REST API với Mongoose Part One.”