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 mongodb
0) và gõ lệnh
npm install mongodb
1

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

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

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 mongodb
2. 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 mongodb
3 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 mongodb
4 trên
npm install mongodb
5 để 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 mongodb
6 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 mongodb
7

GET /trips
0

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 /trips
1

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 /trips
2

npm install mongodb
8 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 mongodb
9

GET /trips
3

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 /trips
4

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 express
1, vì vậy chúng tôi cần sử dụng phần mềm trung gian
npm install express
2

GET /trips
5

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 express
3

GET /trips
6

Sau khi có tên, chúng ta có thể sử dụng phương thức

npm install express
4 để thêm chuyến đi vào cơ sở dữ liệu

GET /trips
7

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 express
7, 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 express
8 vào phản hồi JSON

GET /trips
8

Đó là nó

Bây giờ hãy khởi động lại ứng dụng Node bằng cách nhấn

npm install express
9 để 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

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

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").MongoClient
0. Nó không chấp nhận tham số nào

GET /trips
9

Chúng tôi đã khởi tạo bộ sưu tập

npm install express
5, 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").MongoClient
2, 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").MongoClient
3

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

Sau đó, chúng tôi có thể xử lý các kết quả

npm install express
7 và
const express = require("express")
const mongo = require("mongodb").MongoClient
5

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

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

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

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").MongoClient
6 đượ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").MongoClient
6 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").MongoClient
6 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

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

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").MongoClient
6 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