API dữ liệu MongoDB có thể được sử dụng để truy vấn và cập nhật dữ liệu trong cơ sở dữ liệu MongoDB mà không cần trình điều khiển ngôn ngữ cụ thể
Trình điều khiển ngôn ngữ nên được sử dụng khi có thể, nhưng API dữ liệu MongoDB sẽ hữu ích khi trình điều khiển không có sẵn hoặc trình điều khiển quá mức cần thiết cho ứng dụng
Đọc & Viết với MongoDB Data API
API dữ liệu MongoDB là một tập hợp các điểm cuối HTTPS được định cấu hình sẵn có thể được sử dụng để đọc và ghi dữ liệu vào cơ sở dữ liệu MongoDB Atlas
Với API dữ liệu MongoDB, bạn có thể tạo, đọc, cập nhật, xóa hoặc tổng hợp tài liệu trong cơ sở dữ liệu MongoDB Atlas
Cấu hình cụm
Để sử dụng API dữ liệu, trước tiên bạn phải kích hoạt chức năng từ Giao diện người dùng Atlas
Từ bảng điều khiển MongoDB Atlas, điều hướng đến API dữ liệu trong menu bên trái
Chọn (các) nguồn dữ liệu bạn muốn bật API và nhấp vào Bật API dữ liệu
Cấp độ truy cập
Theo mặc định, không có quyền truy cập nào được cấp. Chọn cấp độ truy cập mà bạn muốn cấp cho API dữ liệu. Các lựa chọn là. Không có quyền truy cập, Chỉ đọc, Đọc và ghi hoặc Truy cập tùy chỉnh
Khóa API dữ liệu
Để xác thực bằng API dữ liệu, trước tiên bạn phải tạo khóa API dữ liệu
Nhấp vào Tạo khóa API, nhập tên cho khóa, sau đó nhấp vào Tạo khóa API
Đảm bảo sao chép khóa API và lưu ở nơi an toàn. Bạn sẽ không có cơ hội khác để xem lại chìa khóa này
Gửi yêu cầu API dữ liệu
Bây giờ chúng ta có thể sử dụng API dữ liệu để gửi yêu cầu đến cơ sở dữ liệu
Trong ví dụ tiếp theo, chúng tôi sẽ sử dụng curl để tìm tài liệu đầu tiên trong bộ sưu tập { "dataSource": "", "database": "", "collection": "", "filter": , "projection": } 0 của cơ sở dữ liệu { "dataSource": "", "database": "", "collection": "", "filter": , "projection": } 1 của chúng tôi. Chúng tôi đã tải dữ liệu mẫu này trong phần Giới thiệu về tập hợp
Trong bài viết này, chúng ta sẽ xây dựng API RESTful bằng Node, Express và MongoDB. Chúng tôi sẽ tạo các điểm cuối để tạo dữ liệu, đọc dữ liệu, cập nhật dữ liệu và xóa dữ liệu (các thao tác CRUD cơ bản)
Nhưng trước khi chúng tôi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt Node trong hệ thống của mình. Nếu không, hãy truy cập https. //nodejs. org/en/download/ để tải về và cài đặt
Trước tiên hãy thực hiện thiết lập cơ bản
Trong một thư mục trống, hãy chạy lệnh sau
npm initLệnh này sẽ hỏi bạn các chi tiết khác nhau, chẳng hạn như tên dự án của bạn, tác giả, kho lưu trữ, v.v. Sau đó, nó sẽ tạo ra một gói. json trong thư mục đó
Gói này. json sẽ chứa tất cả các tập lệnh, chẳng hạn như cách chạy ứng dụng hoặc cách kiểm tra ứng dụng, cũng như tất cả các phần phụ thuộc
Bây giờ chúng ta cần cài đặt một vài phụ thuộc
npm i express mongoose nodemon dotenvNơi đây,
- Express sẽ được sử dụng cho phần mềm trung gian để tạo các điểm cuối CRUD khác nhau
- Mongoose để quản lý dữ liệu trong MongoDB bằng nhiều truy vấn khác nhau
- Nodemon để khởi động lại máy chủ của bạn mỗi khi chúng tôi lưu tệp của bạn
- Dotenv để quản lý một. tập tin env
Vì vậy, hãy tiếp tục và cài đặt chúng
Sau khi cài đặt xong tạo 1 file tên là index. js. Đây sẽ là điểm vào cho ứng dụng của chúng tôi
Và trong tệp này, hãy thêm Express và Mongoose và chạy tệp
const express = require('express'); const mongoose = require('mongoose');Bây giờ, hãy chuyển nội dung của Express sang một hằng số mới có tên là ứng dụng
const express = require('express'); const mongoose = require('mongoose'); const app = express();Bây giờ, hãy lắng nghe những thay đổi của tệp này trên cổng 3000
const express = require('express'); const mongoose = require('mongoose'); const app = express(); app.use(express.json()); app.listen(3000, () => { console.log(`Server Started at ${3000}`) })Bây giờ, máy chủ được đặt trên Cổng 3000. Hãy viết kịch bản để bắt đầu máy chủ của chúng tôi. Chúng tôi cũng đã thêm ứng dụng. sử dụng. Bên trong đó, chúng tôi có một đoạn mã cho phép chúng tôi chấp nhận dữ liệu ở định dạng JSON
Trong gói. json của bạn, hãy thêm một tập lệnh có nội dung như sau
________số 8Điều này có nghĩa là chúng ta có thể khởi động máy chủ của mình bằng npm start và nó sẽ chạy bằng gói Nodemon mà chúng ta đã cài đặt trước đó
Nhập npm start trong terminal và chúng ta sẽ thấy đầu ra sau trong terminal
Cách định cấu hình cơ sở dữ liệu MongoDB
Bây giờ, hãy định cấu hình Cơ sở dữ liệu mongoDB. Truy cập https. //tài khoản. mongodb. com/account/login và tạo tài khoản của bạn hoặc đăng nhập nếu bạn đã có tài khoản
Sau khi đăng nhập, chúng ta phải tạo một cơ sở dữ liệu
Vì vậy, hãy tạo một cụm chia sẻ miễn phí
Nó sẽ hỏi bạn tên người dùng và mật khẩu, vì vậy hãy điền chúng vào
Sau đó, thêm Địa chỉ IP của bạn
Nhấp vào Kết thúc và Đóng
Sẽ mất một thời gian để cụm của chúng tôi hoàn thành, vì vậy hãy đợi. Trong khi đó, tạo một tệp có tên. env trong thư mục dự án
Và trong Trang chủ cụm, nhấp vào nút kết nối
Cửa sổ sau sẽ xuất hiện
Nhấp vào MongoDB Compass và nó sẽ trả về chuỗi sau. Ngoài ra, hãy tải xuống và cài đặt MongoDB Compass
Thêm tên người dùng và mật khẩu của bạn vào chuỗi này mà bạn đã sử dụng trước đây. Chuỗi kết nối cuối cùng sẽ trông giống như thế này
mongodb+srv://nishant:********@cluster0.xduyh.mongodb.net/testDatabaseỞ đây, nishant là tên người dùng, theo sau là mật khẩu và cuối cùng là tên cơ sở dữ liệu
Vì vậy, dán chuỗi này vào. tập tin env
{ "dataSource": "", "database": "", "collection": "", "filter": , "projection": } 0Bây giờ trong MongoDB Compass, hãy thêm cả chuỗi này
Sau đó, nhấp vào Kết nối
Ở đây, chúng tôi sẽ nhận được hai Cơ sở dữ liệu được mặc định. Cái thứ ba sẽ được tạo tự động sau
Bây giờ, hãy nhập nội dung của chúng tôi. env trong tệp script, chỉ mục. js
{ "dataSource": "", "database": "", "collection": "", "filter": , "projection": } 1Ở đây, chúng tôi đang lưu trữ chuỗi vào một biến gọi là mongoString
Bây giờ, hãy kết nối cơ sở dữ liệu với máy chủ của chúng tôi bằng Mongoose
{ "name": "rest-api-express-mongo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } 0Bây giờ, chúng ta phải đưa ra thông báo thành công hoặc lỗi tùy thuộc vào việc kết nối cơ sở dữ liệu của chúng ta thành công hay thất bại
{ "name": "rest-api-express-mongo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } 1Tại đây, cơ sở dữ liệu. bật có nghĩa là nó sẽ kết nối với cơ sở dữ liệu và đưa ra bất kỳ lỗi nào nếu kết nối không thành công. Và cơ sở dữ liệu. một lần có nghĩa là nó sẽ chỉ chạy một lần. Nếu thành công sẽ hiện thông báo Database Connected
Đây là toàn bộ mã cho đến thời điểm này
{ "name": "rest-api-express-mongo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } 2Cách tạo các tuyến đường của chúng tôi cho các điểm cuối
Tạo một thư mục có tên là các tuyến đường và bên trong tạo một tệp có tên là các tuyến đường. js
Nhập tệp này vào tệp tập lệnh chính của chúng tôi, chỉ mục. js
{ "name": "rest-api-express-mongo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } 3Ngoài ra, hãy sử dụng tệp tuyến đường này
{ "name": "rest-api-express-mongo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } 4Đây, ứng dụng này. sử dụng mất hai điều. Một là điểm cuối cơ sở và điểm kia là nội dung của các tuyến đường. Bây giờ, tất cả các điểm cuối của chúng tôi sẽ bắt đầu từ '/api'
Chúng tôi sẽ gặp lỗi vì chúng tôi không có bất kỳ thứ gì bên trong tệp tuyến đường. Vì vậy, hãy thêm chúng
{ "name": "rest-api-express-mongo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } 5Ở đây, chúng tôi đang sử dụng Bộ định tuyến từ Express và chúng tôi cũng đang xuất nó bằng mô-đun. xuất khẩu. Và bây giờ, ứng dụng của chúng tôi sẽ hoạt động tốt
Cách viết Điểm cuối của chúng tôi
Bây giờ, hãy viết các điểm cuối của chúng tôi ở đây trong tệp tuyến đường này. Chúng tôi sẽ có năm lộ trình cho các hành động sau
- Đăng dữ liệu lên Cơ sở dữ liệu
- Lấy tất cả dữ liệu từ Cơ sở dữ liệu
- Lấy dữ liệu dựa trên ID
- Cập nhật dữ liệu dựa trên ID
- Xóa dữ liệu dựa trên ID
Vì vậy, hãy tạo các tuyến đường cho những hành động này
{ "name": "rest-api-express-mongo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } 6Chúng tôi có năm phương thức sử dụng Phương thức REST của Đăng, Nhận, Vá và Xóa
Bộ định tuyến này đang lấy tuyến đường làm tham số đầu tiên. Sau đó, trong tham số thứ hai, nó sẽ gọi lại
Trong cuộc gọi lại, chúng tôi có res và req. res có nghĩa là phản hồi và req có nghĩa là yêu cầu. Chúng tôi sử dụng độ phân giải để gửi phản hồi cho ứng dụng khách của mình, như Postman hoặc bất kỳ ứng dụng khách giao diện người dùng nào. Và chúng tôi sử dụng req để nhận yêu cầu từ ứng dụng khách như Postman hoặc bất kỳ ứng dụng khách giao diện người dùng nào
Sau đó, trong phần thân cuộc gọi lại, chúng tôi đang in một thông báo cho biết thông báo API tương ứng
Lưu cái này và mở Postman để kiểm tra các điểm cuối. Tải xuống Postman nếu bạn không có nó. Nó là một công cụ tuyệt vời để kiểm tra các điểm cuối API
Thêm địa chỉ này vào thanh địa chỉ, sau đó nhấp vào Gửi hoặc nhấn enter
Chúng tôi sẽ nhận được tin nhắn này trong phần thân của Người đưa thư, bởi vì chúng tôi chỉ cần gửi Tin nhắn bằng res. gửi
Bây giờ, hãy lấy phản hồi từ ứng dụng khách. Hãy in một ID
Trước tiên chúng ta phải thay đổi chức năng getOne. Chúng tôi đang nhận ID bằng cách sử dụng req. thông số. id, sau đó gửi nó đến ứng dụng khách bằng cách sử dụng res. gửi
{ "name": "rest-api-express-mongo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } 7____38Thêm điểm cuối này vào thanh địa chỉ. Ở đây, chúng tôi đang sử dụng getOne Endpoint, theo sau là ID. Sau đó, nhấp vào Gửi
Chúng tôi sẽ nhận được ID trong nội dung phản hồi trong Postman
Cách tạo mô hình
Bây giờ, hãy tạo một Mô hình sẽ xác định cấu trúc cơ sở dữ liệu của chúng ta
Tạo một thư mục có tên model và bên trong, một tệp có tên model. js
{ "name": "rest-api-express-mongo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" } 9Ở đây, chúng tôi có một lược đồ xác định cấu trúc cơ sở dữ liệu của chúng tôi. Nó có một tên và một thuộc tính tuổi. Cả hai trường đều có loại và cả hai đều bắt buộc
Sau đó, chúng tôi chỉ đơn giản là xuất mô hình lược đồ
Bây giờ, nhập mô hình này bên trong các tuyến đường. tập tin js
npm i express mongoose nodemon dotenv0Cách đăng dữ liệu lên cơ sở dữ liệu
Hãy tạo phần thân dữ liệu để đăng bằng mô hình mà chúng ta vừa tạo
npm i express mongoose nodemon dotenv1Tên và tuổi của chúng tôi đang chấp nhận tên và tuổi từ cơ thể yêu cầu. Chúng tôi lấy dữ liệu này từ ứng dụng khách như Postman hoặc bất kỳ ứng dụng khách nào như React hoặc Angular
Chúng tôi cũng sẽ tạo một khối thử bắt để xử lý các thông báo thành công và lỗi
npm i express mongoose nodemon dotenv2Trong khối thử, chúng tôi đang lưu dữ liệu bằng dữ liệu. tiết kiệm(). Sau đó, chúng tôi đang lưu trữ dữ liệu trong một const được gọi là dataToSave
Chúng tôi cũng đang gửi thông báo thành công với dữ liệu trong nội dung phản hồi
Và trong khối bắt, chúng tôi sẽ nhận được bất kỳ lỗi nào nếu chúng tôi gặp bất kỳ lỗi nào
npm i express mongoose nodemon dotenv3Bây giờ, hãy thêm một số dữ liệu từ Postman. Nhưng trước đó, chức năng này cần phải không đồng bộ để hoạt động. Vì vậy, chúng tôi sẽ sử dụng async-await
npm i express mongoose nodemon dotenv4Nếu chúng tôi thêm dữ liệu vào phần nội dung và nhấp vào Gửi, chúng tôi sẽ nhận được như sau
Nó cũng tạo ra một ID duy nhất. Mở ứng dụng MongoDB Compass, bạn sẽ thấy cơ sở dữ liệu và bản ghi này bạn vừa tạo
Cách lấy tất cả dữ liệu
Lấy dữ liệu cũng đơn giản. Chỉ cần một vài dòng mã
npm i express mongoose nodemon dotenv5Ở đây, chúng tôi đang sử dụng Model. tìm phương thức để lấy tất cả dữ liệu từ cơ sở dữ liệu. Sau đó, chúng tôi sẽ trả lại nó ở định dạng JSON. Nếu chúng tôi có một lỗi, chúng tôi cũng sẽ nhận được điều đó
Nếu chúng ta gọi điểm cuối này trong Postman, chúng ta sẽ nhận được một mảng các đối tượng trong phần thân của Postman
Cách lấy dữ liệu dựa trên ID
Cái này cũng đơn giản. Chúng tôi chỉ cần chuyển ID của tài liệu, đó là yêu cầu. thông số. id, trong một phương thức gọi là findById
npm i express mongoose nodemon dotenv6Nếu chúng tôi nhấp vào Gửi, chúng tôi sẽ nhận được dữ liệu dựa trên ID
Cách cập nhật và xóa dữ liệu dựa trên ID
Trước tiên, hãy nhắm mục tiêu phương pháp cập nhật bằng phương pháp vá lỗi
npm i express mongoose nodemon dotenv7Ở đây, chúng tôi có ba tham số mà chúng tôi sẽ chuyển vào phương thức findByIdAndUpdate mà chúng tôi sử dụng để tìm tài liệu theo ID và cập nhật tài liệu đó
yêu cầu. thông số. id là const id, updatedData chứa req. phần thân và các tùy chọn chỉ định có trả lại dữ liệu đã cập nhật trong phần thân hay không
Hãy thử nghiệm nó ngay bây giờ. Chỉ cần dán ID của một tài liệu cụ thể và nhấp vào Gửi. Thay đổi cả điểm cuối
Chúng tôi đang cập nhật bằng một ID và nó đang được cập nhật
Xóa cũng đơn giản. Hãy thực hiện nó
npm i express mongoose nodemon dotenv8Chúng tôi đang lấy ID ở đây và sau đó chúng tôi đang sử dụng Model. findByIdAndDelete để xóa trường đó, trong khi chuyển id
Chúng tôi đang lưu trữ dữ liệu cập nhật trong dữ liệu const
Trong phản hồi, chúng tôi sẽ nhận được thông báo rằng tài liệu có tên cụ thể đã bị xóa
Nếu chúng tôi kiểm tra điều này, chúng tôi sẽ nhận được như sau
Như vậy là xong cả 5 phương pháp. Chúng tôi có thể Đăng dữ liệu và Nhận tất cả dữ liệu (cũng dựa trên ID). Chúng tôi cũng có thể Cập nhật chúng và Xóa chúng
Cảm ơn bạn đã đọc
Trong bài viết này, bạn đã tìm hiểu tất cả về cách thiết kế và phát triển API RESTful bằng Node, Express và MongoDB
Giờ đây, bạn có thể sử dụng các điểm cuối này để xây dựng ứng dụng Full-Stack, với Vanilla JavaScript, React, Angular, Next hoặc Vue. js
Bạn cũng có thể xem video của tôi về cùng chủ đề, API RESTful - Xây dựng API RESTful bằng Node, Express và MongoDB
Vui lòng tải xuống mã từ Github và thử nghiệm
học tập vui vẻ
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Tôi xây dựng các dự án để tìm hiểu cách hoạt động của mã. Và trong khi tôi không viết mã, tôi thích viết thơ và kể chuyện, chơi piano và nấu những bữa ăn ngon
Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu