Nút express và MongoDB là gì?

Mẹo. đảm bảo rằng bạn đã cài đặt cơ sở dữ liệu MongoDB trên hệ thống của mình trước khi tiếp tục với hướng dẫn (hoặc sử dụng cơ sở dữ liệu MongoDB trên đám mây nếu bạn thích)

Nhiệm vụ của chúng ta là tạo một ứng dụng tính chi phí chuyến đi

Hãy tưởng tượng bạn đang đi du lịch và bạn có ứng dụng của mình (có thể là ứng dụng web tiến bộ hoặc ứng dụng dành cho thiết bị di động chẳng hạn) nơi bạn thêm bất kỳ chi phí nào bạn kiếm được. Xăng dầu, khách sạn, thực phẩm, vé, v.v.

Khi chuyến đi kết thúc, bạn lưu trữ nó và nó trở thành một phần của lịch sử - bạn có thể điều hướng và xem số tiền bạn đã chi tiêu trong các chuyến đi trước đây

Chúng tôi sẽ không tạo giao diện người dùng của ứng dụng ở đây, chỉ là API

Bây giờ chúng ta hãy phân tích điều này thành chi tiết và dịch nó thành một loạt các điểm cuối API

Điểm cuối là một URL duy nhất mà chúng tôi sẽ gọi để tạo một thao tác

Giống như thêm một chuyến đi mới với tên của nó

Lúc đầu, không có chuyến đi nào được lưu trữ và chúng tôi cần thêm một chuyến đi. Tôi tưởng tượng ứng dụng sẽ hỏi tên người dùng và sẽ có nút “Tạo chuyến đi”. Khi nhấn vào, app sẽ gửi tên cho chúng ta, đến endpoint POST /expense { trip, date, amount, category, description }8 với phương thức HTTP POST /expense { trip, date, amount, category, description }9

Chúng tôi có điểm cuối đầu tiên, điểm cuối này sẽ chấp nhận thuộc tính GET /expenses { trip }0

POST /trip { name }

Một điểm cuối khác sẽ liệt kê các chuyến đi và đó là

GET /trips

Theo mặc định, nó sẽ trả về các chuyến đi được sắp xếp theo ngày tạo

Khi người dùng muốn thêm một khoản chi phí mới, ứng dụng sẽ gọi điểm cuối GET /expenses { trip }1 bằng phương thức POST, với một số tham số mô tả khoản chi phí đó

POST /expense { trip, date, amount, category, description }

GET /expenses { trip }2 là ID của chuyến đi hiện được chọn

GET /expenses { trip }3 là tên của loại chi phí. Chúng tôi sẽ cung cấp một danh sách các danh mục để lựa chọn, đây là danh sách tĩnh. GET /expenses { trip }4, GET /expenses { trip }5, GET /expenses { trip }6, GET /expenses { trip }7

Khi chúng tôi muốn truy xuất chi phí chuyến đi, chúng tôi gọi điểm cuối GET /expenses { trip }8 bằng phương thức GET

GET /expenses { trip }

chuyển số nhận dạng GET /expenses { trip }2

Hãy bắt đầu dự án

Tôi sẽ sử dụng bản cài đặt cục bộ của Node. js

Chúng tôi bắt đầu nút của chúng tôi. js bằng cách vào một thư mục mới (gọi nó là npm install mongodb0) và gõ lệnh npm install mongodb1

Chúng tôi sẽ sử dụng MongoDB làm cơ sở dữ liệu của mình

Cài đặt nút npm install mongodb2. gói js với

npm install mongodb

Trong khi bạn ở đây, hãy cài đặt cả Express

npm install express

Tạo một tệp npm install mongodb3 ngay bây giờ, nơi chúng tôi sẽ lưu trữ mã API của mình và bắt đầu yêu cầu Express và MongoDB

const express = require("express") const mongo = require("mongodb").MongoClient

Khởi tạo ứng dụng Express

const app = express()

Và bây giờ chúng tôi có thể thêm sơ khai cho các điểm cuối API mà chúng tôi hỗ trợ

app.post("/trip", (req, res) => { /* */ }) app.get("/trips", (req, res) => { /* */ }) app.post("/expense", (req, res) => { /* */ }) app.get("/expenses", (req, res) => { /* */ })

Cuối cùng, sử dụng phương pháp npm install mongodb4 trên npm install mongodb5 để khởi động máy chủ

app.listen(3000, () => console.log("Server ready"))

Bạn có thể chạy ứng dụng bằng cách sử dụng npm install mongodb6 trong thư mục dự án

Thêm chuyến đi

Chúng tôi cung cấp cho khách hàng một cách để thêm chuyến đi bằng cách sử dụng điểm cuối npm install mongodb7

GET /trips0

Hãy tiếp tục và thực hiện nó

Chúng tôi đã bao gồm thư viện MongoDB, vì vậy chúng tôi có thể sử dụng nó trong quá trình triển khai điểm cuối của mình

GET /trips1

Tiếp theo, chúng tôi xây dựng URL máy chủ MongoDB. Nếu bạn đang chạy dự án cục bộ và MongoDB cục bộ, URL có thể là thế này

GET /trips2

vì npm install mongodb8 là cổng mặc định

Tiếp theo, hãy kết nối với cơ sở dữ liệu bằng cách sử dụng npm install mongodb9

GET /trips3

và trong khi chúng ta ở đây, chúng ta cũng hãy tham khảo các chuyến đi và bộ sưu tập chi phí

GET /trips4

Bây giờ chúng ta có thể quay lại điểm cuối của mình

Điểm cuối này mong đợi 1 tham số, GET /expenses { trip }0, đại diện cho cách chúng tôi gọi chuyến đi của mình. Ví dụ: Thụy Điển 2018 hoặc Yosemite tháng 8 năm 2018

Xem hướng dẫn của tôi về cách truy xuất các tham số truy vấn POST bằng Express

Chúng tôi mong đợi dữ liệu đến dưới dạng JSON, sử dụng npm install express1, vì vậy chúng tôi cần sử dụng phần mềm trung gian npm install express2

GET /trips5

Bây giờ chúng tôi có thể truy cập dữ liệu bằng cách tham khảo nó từ npm install express3

GET /trips6

Sau khi có tên, chúng ta có thể sử dụng phương thức npm install express4 để thêm chuyến đi vào cơ sở dữ liệu

GET /trips7

Nếu bạn gặp lỗi như “không thể đọc phần chèn thuộc tínhMột trong số không xác định”, hãy đảm bảo rằng _____20_______5 được đặt thành công trong ____20_______6. Thêm bảng điều khiển. log(trips) trước khi gọi insertOne() để đảm bảo rằng nó chứa đối tượng bộ sưu tập

Chúng tôi xử lý lỗi, nếu có trong biến npm install express7, nếu không, chúng tôi sẽ gửi phản hồi 200 (thành công) cho khách hàng, thêm thông báo npm install express8 vào phản hồi JSON

GET /trips8

Đó là nó

Bây giờ hãy khởi động lại ứng dụng Node bằng cách nhấn npm install express9 để dừng ứng dụng và chạy lại

Bạn có thể kiểm tra điểm cuối này bằng ứng dụng Insomnia, một cách tuyệt vời để kiểm tra và tương tác với điểm cuối REST

Liệt kê các chuyến đi

Danh sách các chuyến đi được trả về bởi điểm cuối const express = require("express") const mongo = require("mongodb").MongoClient0. Nó không chấp nhận tham số nào

GET /trips9

Chúng tôi đã khởi tạo bộ sưu tập npm install express5, vì vậy chúng tôi có thể truy cập trực tiếp vào bộ sưu tập đó để lấy danh sách

Chúng tôi sử dụng phương pháp const express = require("express") const mongo = require("mongodb").MongoClient2, kết quả là chúng tôi phải chuyển đổi thành một mảng bằng cách sử dụng const express = require("express") const mongo = require("mongodb").MongoClient3

POST /expense { trip, date, amount, category, description }0

Sau đó, chúng tôi có thể xử lý các kết quả npm install express7 và const express = require("express") const mongo = require("mongodb").MongoClient5

POST /expense { trip, date, amount, category, description }1

Đây là kết quả của lệnh gọi API trong Insomnia

Thêm một khoản chi phí

Trước đây chúng tôi đã nhận được danh sách các chuyến đi. Mỗi chuyến đi có một thuộc tính const express = require("express") const mongo = require("mongodb").MongoClient6 được liên kết được MongoDB thêm trực tiếp khi nó được thêm vào

POST /expense { trip, date, amount, category, description }2

Chúng tôi sẽ sử dụng const express = require("express") const mongo = require("mongodb").MongoClient6 này để đăng ký một khoản chi phí mới

Nếu bạn còn nhớ, điểm cuối để thêm chi phí mới là đây

POST /expense { trip, date, amount, category, description }

GET /expenses { trip }2 trong trường hợp này sẽ là const express = require("express") const mongo = require("mongodb").MongoClient6 của một trong những chuyến đi mà chúng tôi đã đăng ký trước đó. Hãy tưởng tượng rằng trong ứng dụng, người dùng sẽ thêm một chuyến đi và chuyến đi đó sẽ vẫn là chuyến đi hiện tại cho đến khi một chuyến đi mới được thêm (hoặc chọn)

Hãy tiếp tục và triển khai sơ khai của chúng ta

POST /expense { trip, date, amount, category, description }4

Giống như khi thêm một chuyến đi, chúng ta sẽ sử dụng phương thức insertOne(), lần này là trên bộ sưu tập const app = express()0

Chúng tôi nhận được 5 tham số từ phần thân yêu cầu

  • GET /expenses { trip }2
  • const app = express()2 ngày, ở định dạng ISO 8601 (e. g. const app = express()3), theo múi giờ GMT
  • const app = express()4 một số nguyên với số tiền
  • GET /expenses { trip }3 là một từ GET /expenses { trip }4, GET /expenses { trip }5, GET /expenses { trip }6, GET /expenses { trip }7
  • app.post("/trip", (req, res) => { /* */ }) app.get("/trips", (req, res) => { /* */ }) app.post("/expense", (req, res) => { /* */ }) app.get("/expenses", (req, res) => { /* */ })0 mô tả chi phí, vì vậy chúng tôi sẽ nhớ về nó sau
POST /expense { trip, date, amount, category, description }5

Liệt kê tất cả các khoản chi

Phần cuối cùng của câu đố là nhận được các chi phí

Chúng ta cần điền vào GET /expenses { trip }8 endpoint stub, cái cuối cùng còn thiếu

POST /expense { trip, date, amount, category, description }6

Điểm cuối này chấp nhận tham số GET /expenses { trip }2, là thuộc tính const express = require("express") const mongo = require("mongodb").MongoClient6 của chuyến đi được lưu trữ trong cơ sở dữ liệu

NodeJS và MongoDB là gì?

MongoDB là một nền tảng dữ liệu định hướng tài liệu đa năng, hiện đại đã được ghép nối rộng rãi với Node. js trong ngăn xếp công nghệ phổ biến như ngăn xếp MEAN (MongoDB, Express. js, AngularJS và Nút. js) và ngăn xếp MERN (MongoDB, Express. js, phản ứng.

Tại sao nên sử dụng Express và MongoDB?

Sử dụng Express làm phần mềm trung gian back-end là một thiết kế ngăn xếp MongoDB phổ biến. Express nhẹ và dễ tiếp cận đối với các hoạt động API JSON và REST . MongoDB Atlas là một Cơ sở dữ liệu dưới dạng dịch vụ tài liệu linh hoạt và có thể mở rộng và là người bạn đồng hành hoàn hảo với Express trong nhiều ngăn xếp như MERN, MEAN và MEVN.

Sự khác biệt giữa NodeJS và MongoDB là gì?

MongoDB là một cơ sở dữ liệu NoSQL được sử dụng rộng rãi. Khả năng lưu trữ dữ liệu ở một số định dạng làm cho MongoDB trở thành một công cụ hữu ích để quản lý lượng lớn dữ liệu. Mặt khác, Nodejs là một môi trường thời gian chạy nổi tiếng hỗ trợ thực thi mã JavaScript bên ngoài trình duyệt .

Nút và Express là gì?

Nút. js là một nền tảng để xây dựng các ứng dụng i/o hướng sự kiện phía máy chủ và được tạo bằng JavaScript. Thể hiện. js là một framework dựa trên Node. js được sử dụng để xây dựng ứng dụng web bằng cách sử dụng các phương pháp và nguyên tắc của Node

Chủ đề