MongoDB[R] là một hệ thống cơ sở dữ liệu NoSQL có khả năng mở rộng, hiệu suất cao và định hướng tài liệu. Nó lưu trữ dữ liệu trong JSON, cho phép các lược đồ linh hoạt và năng động. Nó được sử dụng bởi một số công ty lớn nhất trên thế giới và được điều chỉnh để mang lại hiệu suất cao mà không mất đi tính linh hoạt
MongoDB[R] hỗ trợ tập hợp và nó là cơ sở dữ liệu được lựa chọn cho tìm kiếm dựa trên địa lý, tìm kiếm biểu đồ và tìm kiếm văn bản. Nó là một thành phần thiết yếu của các ứng dụng MEAN
từ chối trách nhiệm. Các nhãn hiệu tương ứng được đề cập trong ưu đãi thuộc sở hữu của các công ty tương ứng. Chúng tôi không cung cấp giấy phép thương mại cho bất kỳ sản phẩm nào trong số này. Danh sách này có giấy phép nguồn mở. MongoDB[R] được điều hành và duy trì bởi MongoDB, đây là một dự án hoàn toàn tách biệt với Bitnami
Tại sao nên sử dụng Ứng dụng được Bitnami chứng nhận?
Hình ảnh được chứng nhận của Bitnami luôn cập nhật, bảo mật và được xây dựng để hoạt động ngay lập tức
Bitnami đóng gói các ứng dụng theo tiêu chuẩn ngành và liên tục theo dõi tất cả các thành phần và thư viện để tìm lỗ hổng và cập nhật ứng dụng. Khi xác định được bất kỳ mối đe dọa hoặc cập nhật bảo mật nào, Bitnami sẽ tự động đóng gói lại các ứng dụng và đẩy các phiên bản mới nhất lên thị trường đám mây
Đối với các nhà phát triển đang xây dựng các ứng dụng và API gốc trên đám mây cho Kubernetes, Bitnami cung cấp nhiều vùng chứa và biểu đồ Helm để giảm bớt quy trình. Những nội dung sẵn sàng sử dụng này giúp dễ dàng phát triển và triển khai các ứng dụng một cách nhất quán, tuân theo các phương pháp hay nhất và tập trung vào mã thay vì cấu hình cơ sở hạ tầng. Bộ chứa và biểu đồ Bitnami cũng luôn được bảo mật, tối ưu hóa và cập nhật, vì vậy bạn có thể yên tâm rằng ứng dụng của mình luôn có quyền truy cập vào các tính năng ngôn ngữ và bản sửa lỗi bảo mật mới nhất
Để minh họa những lợi ích này, loạt bài gồm hai phần này sẽ hướng dẫn bạn quy trình phát triển và triển khai một Node mẫu. js REST API cục bộ bằng cách sử dụng bộ chứa Bitnami. Sau đó, khi API của bạn ổn định hoặc sẵn sàng ở mức hợp lý, nó sẽ chỉ cho bạn cách cung cấp API cho nhóm người đánh giá hoặc người dùng rộng hơn bằng cách triển khai API trên Kubernetes bằng biểu đồ Bitnami Helm
Trong phần đầu tiên này, bạn sẽ tạo và chạy một API REST mẫu cục bộ trên hệ thống phát triển của mình bằng cách sử dụng khung công tác Sails. Bạn cũng sẽ tạo một dịch vụ MongoDB cục bộ để lưu trữ dữ liệu API, đồng thời tích hợp và kiểm tra API REST của bạn với dịch vụ MongoDB này. Để thực hiện các tác vụ này, bạn có thể sử dụng Nút hiện có của mình. js hoặc nếu không có, bạn có thể sử dụng các hình ảnh bộ chứa Bitnami sau
Giả định và điều kiện tiên quyết
Hướng dẫn này giả định rằng
Bước đầu tiên là tạo một Node khung. ứng dụng js. Bài viết này sẽ sử dụng Bitnami Node. js và khung công tác Sails MVC phổ biến; . Ví dụ, nếu bạn đã có một Node. js, bạn có thể sử dụng môi trường đó và bỏ qua các lệnh Docker bên dưới
Bắt đầu bằng cách tạo một thư mục cho ứng dụng của bạn và biến nó thành thư mục làm việc hiện tại
Sử dụng các lệnh Docker sau để tạo và bắt đầu Bitnami Node. js trên máy chủ của bạn
docker create -v $[pwd]:/app -t --net="host" --name node bitnami/node:13 docker start node
Đối số -v cho lệnh đầu tiên yêu cầu Docker gắn thư mục hiện tại của máy chủ vào đường dẫn /app của bộ chứa, để hiệu ứng của các lệnh chạy trong bộ chứa được nhìn thấy trên máy chủ. Tham số –net=“host” yêu cầu Docker sử dụng ngăn xếp mạng của máy chủ cho vùng chứa. Vùng chứa được đặt tên là nút
Khi vùng chứa đang chạy, hãy kết nối với bảng điều khiển vùng chứa bằng lệnh bên dưới. Điều này sẽ cung cấp cho bạn một trình bao lệnh và cho phép bạn sử dụng nút. js có sẵn trong hình ảnh cho các tác vụ tiếp theo
docker exec -it node /bin/bash
Cài đặt Sails và sau đó sử dụng Sails CLI để tạo giàn giáo cho ứng dụng khung. Khi được nhắc về loại ứng dụng, hãy chọn ứng dụng “Trống”
npm install -g sails sails new .
Khi giàn giáo ứng dụng đã được tạo, hãy khởi động ứng dụng
Theo mặc định, ứng dụng Sails bắt đầu ở chế độ phát triển và chạy ở cổng 1337. Duyệt đến http. //DOCKER-HOST-ĐỊA CHỈ. 1337, trong đó DOCKER-HOST-ADDRESS là địa chỉ IP của máy chủ của bạn và xác nhận rằng bạn thấy trang chào mừng của Sails được hiển thị bên dưới
Thoát khỏi bảng điều khiển vùng chứa. Thao tác này sẽ chấm dứt quy trình ứng dụng Sails, mặc dù bộ chứa sẽ tiếp tục chạy trong nền
Bước 2. Tạo và bắt đầu dịch vụ MongoDB cục bộ
MongoDB là phần mềm lưu trữ dữ liệu phổ biến và có thể mở rộng cho Node. ứng dụng js. Hình ảnh MongoDB của Bitnami giúp dễ dàng tạo dịch vụ MongoDB cục bộ có thể được sử dụng để lưu trữ, truy xuất và sửa đổi dữ liệu liên quan đến API REST của bạn. Ngoài ra, nếu bạn đã có máy chủ MongoDB và cơ sở dữ liệu MongoDB trên máy chủ của mình, bạn có thể sử dụng máy chủ đó và bỏ qua các lệnh Docker bên dưới
Tạo và bắt đầu dịch vụ cơ sở dữ liệu MongoDB bằng bộ chứa Bitnami MongoDB trên máy chủ của bạn. Nếu muốn, bạn có thể thay thế thông tin đăng nhập cơ sở dữ liệu và các biến khác được hiển thị bên dưới bằng các giá trị của riêng bạn, nhưng hãy ghi lại chúng vì bạn sẽ cần chúng trong bước tiếp theo
docker create -e MONGODB_USERNAME=myapp -e MONGODB_PASSWORD=myapp -e MONGODB_DATABASE=mydb -e MONGODB_ROOT_PASSWORD=root --net="host" --name mongodb bitnami/mongodb
docker start mongodb
Các biến môi trường được chuyển đến lệnh đầu tiên đặt mật khẩu quản trị viên cho phiên bản MongoDB, đồng thời tạo cơ sở dữ liệu mới có tên mydb với thông tin xác thực người dùng tương ứng. Cơ sở dữ liệu này sẽ được sử dụng để lưu trữ dữ liệu cho API REST. Như trước đây, tham số –net=“host” yêu cầu Docker sử dụng ngăn xếp mạng của máy chủ cho vùng chứa này. Vùng chứa được đặt tên là mongodb và sau khi bắt đầu, dịch vụ MongoDB sẽ khả dụng trên máy chủ Docker tại cổng 27017
Bước 3. Tạo và định cấu hình điểm cuối API REST
Tại thời điểm này, bạn có một nút khung. js và dịch vụ cơ sở dữ liệu MongoDB. Bây giờ bạn có thể bắt đầu tạo API REST của mình. Như trước đây, nếu bạn đang sử dụng một Nút hiện có. js, hãy bỏ qua các lệnh Docker bên dưới
Kết nối lại với bảng điều khiển vùng chứa bằng lệnh bên dưới
docker exec -it node /bin/bash
Sails đi kèm với trình tạo tích hợp cho các điểm cuối API. Sử dụng công cụ này để tạo giàn giáo cho điểm cuối API REST mẫu mới cho các đối tượng Mục. Theo mặc định, điểm cuối này sẽ được hiển thị tại /item URI
Cài đặt bộ điều hợp MongoDB cho Sails
npm install sails-mongo --save
Thoát khỏi Docker container sau khi cài đặt hoàn tất
Làm theo các bước được nêu trong tài liệu Sails để định cấu hình ứng dụng đã tạo để sử dụng MongoDB để lưu trữ dữ liệu. Đầu tiên, chỉnh sửa myapp/config/datastores. js và sửa đổi mục lưu trữ dữ liệu mặc định như hình bên dưới
default: { adapter: 'sails-mongo', url: 'mongodb://myapp:myapp@localhost/mydb' }
Nếu bạn đã sử dụng các giá trị khác nhau khi tạo bộ chứa MongoDB hoặc nếu bạn đang sử dụng một bản cài đặt MongoDB khác, hãy nhớ thay thế các giá trị hiển thị ở trên nếu cần
Sau đó, cập nhật thuộc tính id và di chuyển trong myapp/config/models. tập tin js
migrate: 'alter', id: { type: 'string', columnName: '_id' },
Tạo mô hình dữ liệu cho đối tượng Mục API REST. Đối với bài viết này, hãy sử dụng một mô hình đơn giản chỉ với hai thuộc tính. tên và số lượng. Chỉnh sửa myapp/api/models/Item. js và cập nhật nó trông như thế này
________số 8
Kết nối lại với bảng điều khiển vùng chứa. Khởi động ứng dụng và đặt nó ở chế độ nền
docker exec -it node /bin/bash sails lift &
Thoát khỏi bộ chứa Docker sau khi ứng dụng bắt đầu
Như trước đây, ứng dụng sẽ bắt đầu ở chế độ phát triển và khả dụng tại cổng 1337 của máy chủ
Bước 4. Kiểm tra API REST
API REST của bạn hiện đang hoạt động và được định cấu hình để sử dụng MongoDB. Bây giờ bạn có thể tiến hành kiểm tra nó từ máy chủ của mình bằng cách gửi cho nó nhiều loại yêu cầu HTTP khác nhau và kiểm tra các phản hồi. Nếu bạn đang sử dụng bộ chứa Bitnami, hãy nhớ rằng chúng đang sử dụng ngăn xếp mạng của máy chủ lưu trữ và do đó sẽ có sẵn tại các cổng 1337 [Nút. js] và 27017 [MongoDB] tương ứng
Tại bảng điều khiển máy chủ, hãy gửi yêu cầu POST tới API bằng cách sử dụng curl để tạo bản ghi mục mới
0docker exec -it node /bin/bash
Bạn sẽ thấy đầu ra tương tự như hình bên dưới
Kiểm tra xem bản ghi mục có được tạo bằng yêu cầu GET không
1docker exec -it node /bin/bash
Bạn sẽ thấy đầu ra tương tự như hình bên dưới
Bạn cũng có thể kết nối với bộ chứa MongoDB đang chạy và sử dụng mongo CLI để xem dữ liệu trong cơ sở dữ liệu MongoDB
2docker exec -it node /bin/bash
Bạn sẽ thấy đầu ra tương tự như hình bên dưới
Sửa đổi bản ghi mục bằng yêu cầu PUT. Thay thế trình giữ chỗ ID trong lệnh bên dưới bằng mã định danh duy nhất của tài liệu từ các lệnh trước đó
3docker exec -it node /bin/bash
Bạn sẽ thấy đầu ra tương tự như hình bên dưới
Xóa bản ghi mục bằng yêu cầu DELETE
4docker exec -it node /bin/bash
Bạn sẽ thấy đầu ra tương tự như hình bên dưới
Bạn cũng có thể kết nối với bộ chứa MongoDB đang chạy và sử dụng mongo CLI để xác nhận rằng dữ liệu đã bị xóa khỏi cơ sở dữ liệu MongoDB
5docker exec -it node /bin/bash
Bạn sẽ thấy đầu ra tương tự như hình bên dưới
Tại thời điểm này, bạn có một Nút đang hoạt động. js REST API được tích hợp với cơ sở dữ liệu MongoDB. Tuy nhiên, nó hiện chỉ khả dụng trên máy cục bộ của bạn và chỉ khi các vùng chứa đang chạy. Điều này tốt cho sự phát triển cục bộ, nhưng lại trở thành nút thắt cổ chai khi bạn muốn cung cấp cho người khác để xem xét và thử nghiệm
Đó là nơi mà phần thứ hai của loạt bài này xuất hiện. Tiếp tục thêm các tính năng vào API của bạn và khi bạn hài lòng với nó, hãy chuyển sang bài viết kết luận và tìm hiểu cách cung cấp API REST của bạn cho một nhóm lớn hơn bằng cách chứa nó, triển khai nó trên Kubernetes và kết nối nó với dịch vụ MongoDB cũng đang chạy