Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Trong bài viết này, chúng tôi sẽ xây dựng một 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 hoạt động CRUD cơ bản).

Nhưng trước khi chúng tôi bắt đầu, hãy chắc chắn rằng bạn đã cài đặt nút trong hệ thống của mình. Nếu không, hãy truy cập https://nodejs.org/en/doad/ để tải xuống và cài đặt nó.

Hãy thực hiện thiết lập cơ bản trước

Trong một thư mục trống, hãy chạy lệnh sau:

npm init

Lệnh này sẽ yêu cầu bạn các chi tiết khác nhau, chẳng hạn như tên của dự án của bạn, tác giả, kho lưu trữ, v.v. Sau đó, nó sẽ tạo một tệp pack.json trong thư mục đó.package.json file in that folder.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb
________ 1package.json tệp

Tệp gói này.json sẽ chứa tất cả các tập lệnh, 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ụ thuộc.

Chúng ta cần cài đặt một vài phụ thuộc bây giờ.

npm i express mongoose nodemon dotenv

Nơi đây,

  1. 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.
  2. Mongoose để quản lý dữ liệu trong MongoDB bằng các truy vấn khác nhau.
  3. Nodemon để khởi động lại máy chủ của chúng tôi mỗi khi chúng tôi lưu tệp của chúng tôi.
  4. Dotenv để quản lý tệp .env..env file.

Vì vậy, hãy tiếp tục và cài đặt chúng.

Sau khi cài đặt xong, hãy tạo một tệp có tên index.js. Đây sẽ là điểm nhập cảnh cho ứng dụng của chúng tôi.index.js. This will be the entry point for our application.

Và trong tệp này, hãy thêm ExpressAndMongoose và chạy tệp.and Mongoose, and run the file.

const express = require('express');
const mongoose = require('mongoose');

Bây giờ, chuyển nội dung của ExpressInto một hằng số mới gọi là Ứng dụng.into a new constant called app.

const express = require('express');
const mongoose = require('mongoose');

const app = express();

Bây giờ, hãy lắng nghe các 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 tập lệnh để khởi động máy chủ của chúng tôi. Chúng tôi cũng đã thêm ứng dụng. Bên trong đó, chúng tôi có đoạn mã cho phép chúng tôi chấp nhận dữ liệu ở định dạng JSON.Port 3000. Let's write the script to start our server. We have also added the app.use. Inside that, we have a code snippet that allows us to accept the data in JSON format.

Trong tệp pack.json, thêm một tập lệnh cho biết như sau:

"scripts": {
    "start": "nodemon index.js"
},

Điều này có nghĩa là chúng tôi có thể khởi động máy chủ của mình bằng cách sử dụng NPM Start và nó sẽ chạy bằng cách sử dụng ThenodemonPackage mà chúng tôi đã cài đặt trước đó.npm start, and it will run using theNodemonpackage that we previously installed.

Loại NPM bắt đầu trong thiết bị đầu cuối và chúng ta sẽ thấy đầu ra sau trong thiết bị đầu cuối:

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

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://account.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ó.

Sau khi đăng nhập, chúng tôi phải tạo một cơ sở dữ liệu.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Vì vậy, tạo một cụm chia sẻ miễn phí.Free Shared Cluster.

Nó sẽ yêu cầu bạn tên người dùng và mật khẩu, vì vậy hãy điền chúng vào.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Sau đó, thêm địa chỉ IP của bạn.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

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 chờ đợi. Trong khi đó, tạo một tệp được gọi là .ENV trong thư mục dự án..env in the project folder.

Và trong trang chủ của cụm, nhấp vào nút Kết nối.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Cửa sổ sau sẽ xuất hiện:

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Nhấp vào Compass MongoDB, và nó sẽ trả lại chuỗi sau. Ngoài ra, tải xuống và cài đặt la bàn MongoDB.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

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 .env..env file.

DATABASE_URL = mongodb+srv://nishant:*******@cluster0.xduyh.mongodb.net/testDatabase

Bây giờ trong Compass MongoDB, thêm chuỗi này là tốt.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Sau đó, nhấp vào Kết nối.

Ở đây, chúng tôi sẽ nhận được hai cơ sở dữ liệu mặc định. Một phần ba sẽ được tự động tạo sau.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Bây giờ, hãy nhập nội dung của tệp .ENV của chúng tôi trong tệp tập lệnh, index.js.env file in the script file, index.js.

require('dotenv').config();

const mongoString = process.env.DATABASE_URL

Ở đây, chúng tôi đang lưu trữ chuỗi thành một biến gọi là Mongostring.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"
}
0

Bây giờ, chúng tôi phải ném thành công hoặc thông báo lỗi tùy thuộc vào việc kết nối cơ sở dữ liệu của chúng tôi thành công hay khô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"
}
1

Ở đây, cơ sở dữ liệu.on có nghĩa là nó sẽ kết nối với cơ sở dữ liệu và ném 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.Monce có nghĩa là nó sẽ chỉ chạy một lần. Nếu nó thành công, nó sẽ hiển thị một thông báo cho biết cơ sở dữ liệu được kết nối.database.on means it will connect to the database, and throws any error if the connection fails. And database.once means it will run only one time. If it is successful, it will show a message that says Database Connected.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Đâ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"
}
2

Cá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 gọi là các tuyến đường và bên trong tạo một tệp gọi là ROUTE.js.

Nhập tệp này vào tệp tập lệnh chính của chúng tôi, index.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"
}
3

Ngoài ra, hãy sử dụng tệp tuyến 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 lấy hai điều. Một là điểm cuối cơ sở, và cái còn lại 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 cứ điều 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 đang xuất nó bằng cách sử dụng Module.exports. 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ờ, chúng ta hãy viết các điểm cuối của chúng tôi ở đây trong tệp tuyến này. Chúng tôi sẽ có năm tuyến đường cho các hành động sau:

  1. Đăng dữ liệu lên cơ sở dữ liệu.
  2. Nhận tất cả các dữ liệu từ cơ sở dữ liệu.
  3. Nhận dữ liệu dựa trên ID.
  4. Cập nhật dữ liệu dựa trên ID.
  5. Xóa dữ liệu dựa trên ID.

Vì vậy, hãy tạo các tuyến đường cho các 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"
}
6

Chúng tôi có năm phương pháp sử dụng các phương thức phần còn lại của bài đăng, nhận, vá và xóa.

Bộ định tuyến này đang đi theo tuyến đường làm tham số đầu tiên. Sau đó, trong tham số thứ hai, nó đang gọi lại.

Trong cuộc gọi lại, chúng tôi có một 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 RES để gửi phản hồi cho khách hàng của chúng tôi, như Postman hoặc bất kỳ ứng dụng khách hàng đầu 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 hàng đầu nào.res and a req. res means response, and req means request. We use res for sending responses to our client, like Postman, or any front-end client. And we use req for receiving requests from a client app like Postman, or any front-end client.

Sau đó, trong phần thân gọi lại, chúng tôi đang in một thông báo nói rằng tin nhắn API tương ứng.

Lưu cái này, và mở người đưa thư để 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.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Thêm địa chỉ này trong thanh địa chỉ, sau đó nhấp vào Gửi hoặc nhấn Enter.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Chúng tôi sẽ nhận được tin nhắn này trong phần thân của Postman, bởi vì chúng tôi chỉ đơn giản là gửi một tin nhắn bằng Res.Send.res.send.

Bây giờ, chúng ta hãy nhận phản hồi từ ứng dụng khách. Hãy chỉ cần in một ID.

Chúng ta phải thay đổi hàm getone trước. Chúng tôi đang nhận ID bằng req.params.id, và sau đó gửi nó đến ứng dụng máy khách bằng Res.Send.getOne function first. We are getting the ID using req.params.id, and then sending it to the client app using res.send.

{
  "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
{
  "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"
}
8

Thêm điểm cuối này trong thanh địa chỉ. Ở đây, chúng tôi đang sử dụng điểm cuối getone, theo sau là ID. Sau đó, nhấp vào Gửi.getOne Endpoint, followed by the ID. Then, click Send.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Chúng tôi sẽ nhận được ID trong cơ thể 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 tôi.

Tạo một thư mục gọi là mô hình 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 tài sản tuổi. Cả hai trường đều có loại và cả hai đều được yêu cầu.name and an age property. Both fields have types and both are required.

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 tệp ROULES.js.routes.js file.

npm i express mongoose nodemon dotenv
0

Cá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 chúng tôi vừa tạo.

npm i express mongoose nodemon dotenv
1

Tên và tuổi của chúng tôi đang chấp nhận tên và tuổi từ cơ thể Req. Chúng tôi nhận được dữ liệu này từ ứng dụng máy khách như Postman hoặc bất kỳ máy khách nào như React hoặc Angular.req body. We get this data from the client app such as Postman, or any frontend client like React or Angular.

Chúng tôi cũng sẽ tạo một khối thử để xử lý các thông báo và lỗi thành công.try-catch block to handle success messages and errors.

npm i express mongoose nodemon dotenv
2

Trong khối thử, chúng tôi đang lưu dữ liệu bằng dữ liệu.save (). Sau đó, chúng tôi đang lưu trữ dữ liệu trong một const có tên là Datatosave.data using data.save().Then, we are storing the data in a const called dataToSave.

Chúng tôi cũng đang gửi tin nhắn thành công với dữ liệu trong thân phản hồi.

Và trong khối bắt, chúng tôi đang nhận được bất kỳ lỗi nào nếu chúng tôi nhận được bất kỳ.

npm i express mongoose nodemon dotenv
3

Bâ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ộ để làm việc. Vì vậy, chúng tôi sẽ sử dụng ASYNC-SEWAIT.

npm i express mongoose nodemon dotenv
4

Nếu chúng ta thêm dữ liệu vào cơ thể và nhấp vào Gửi, chúng ta sẽ nhận được những điều sau:

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Nó cũng tạo ra một ID duy nhất. Mở ứng dụng MongoDB La bàn và bạn sẽ thấy cơ sở dữ liệu và bản ghi này bạn vừa tạo:

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Cách lấy tất cả dữ liệu

Nhận dữ liệu cũng đơn giản. Chỉ một vài dòng mã:

npm i express mongoose nodemon dotenv
5

Ở đây, chúng tôi đang sử dụng phương thức Model.find để tìm nạp tất cả dữ liệu từ cơ sở dữ liệu. Sau đó, chúng tôi đang trả lại nó ở định dạng JSON. Nếu chúng ta có lỗi, chúng ta cũng sẽ nhận được điều đó.Model.find method to fetch all the data from the database. Then, we are returning it back in JSON format. If we have an error, we will get that too.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Nếu chúng ta gọi điểm cuối này trong Postman, chúng ta sẽ nhận được một loạt các đối tượng trong cơ thể Postman.

Cách nhận dữ liệu dựa trên ID

Cái này cũng đơn giản. Chúng ta chỉ cần chuyển ID của tài liệu, đó là req.params.id, trong một phương thức gọi là FindByid.req.params.id, in a method called findById.

npm i express mongoose nodemon dotenv
6

Nế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.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

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 thức cập nhật bằng phương thức Patch.patch method.

npm i express mongoose nodemon dotenv
7

Ở đây chúng tôi có ba tham số mà chúng tôi đang chuyển trong phương thức FindByidandUpdate, chúng tôi sử dụng để tìm tài liệu bằng ID và cập nhật nó.findByIdAndUpdate method, which we use to find a document by ID and update it.

Req.params.id là ID const, UpdateData có chứa req.body và các tùy chọn, chỉ định xem có nên trả về dữ liệu được cập nhật trong cơ thể hay không.req.params.id is the const id, updatedData which contains the req.body, and the options, which specifies whether to return the updated data in the body or not.

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ác điểm cuối là tốt.

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Chúng tôi đang cập nhật bằng một ID và nó được cập nhật.

Xóa cũng đơn giản. Hãy thực hiện nó:

npm i express mongoose nodemon dotenv
8

Chúng tôi đang nhận ID ở đây, và sau đó chúng tôi đang sử dụng model.findbyidanddelete để xóa trường đó, trong khi truyền id.

Chúng tôi đang lưu trữ dữ liệu được cập nhật trong một dữ liệu const.data.

Trong phản hồi, chúng tôi sẽ nhận được thông báo rằng tài liệu đó với 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:

Hướng dẫn how to create rest api in node js with mongodb - cách tạo api còn lại trong nút js với mongodb

Vì vậy, tất cả năm phương pháp được thực hiện. 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 đã học được tất cả về cách thiết kế và phát triển API RESTful bằng Node, Express và MongoDB.

Bây giờ bạn có thể sử dụng các điểm cuối này để xây dựng một ứng dụng đầy đủ, 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 một chủ đề, API RESTful - Xây dựng API RESTful bằng Node, Express và MongoDB

Hãy tải xuống mã từ GitHub và thử nghiệm.

Học hỏi hạnh phúc.


Học mã miễn phí.Chương trình giảng dạy 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