Tạo apis máy chủ của riêng bạn bằng cách sử dụng expressjs và cơ sở dữ liệu mongodb

API REST là một thành phần không thể thiếu của ứng dụng web. Bạn không cần phải là một nhà phát triển phụ trợ chuyên gia để tự tạo. Trong hướng dẫn này, chúng ta sẽ tìm hiểu các khối xây dựng cơ bản để tạo API REST của riêng bạn bằng cách sử dụng Node. js, Express và MongoDB

Giao diện lập trình ứng dụng (API)

Về cơ bản, API chỉ cho phép các ứng dụng giao tiếp với nhau

API không phải là cơ sở dữ liệu. Nó là một điểm truy cập vào một ứng dụng có thể truy cập cơ sở dữ liệu. Chuyển giao trạng thái đại diện (REST)

REST là một kiểu kiến ​​trúc hoặc mẫu thiết kế dành cho API

Ứng dụng web RESTful hiển thị thông tin về chính nó dưới dạng thông tin về tài nguyên của nó. Nó cũng cho phép khách hàng thực hiện hành động đối với các tài nguyên đó, chẳng hạn như tạo tài nguyên mới (i. e. tạo một bài đăng mới) hoặc thay đổi các tài nguyên hiện có (i. e. sửa bài viết)

Khi API RESTful được gọi, máy chủ sẽ chuyển cho máy khách một biểu diễn trạng thái của tài nguyên được yêu cầu

Biểu diễn trạng thái phổ biến nhất là ở định dạng JSON (Ký hiệu đối tượng JavaScript), đây là những gì chúng ta sẽ làm việc với ngày hôm nay

Thiết lập môi trường (Yêu cầu)

  • IDE (Mã VS, Atom, v.v. )
  • NodeJS
  • MongoDB
  • Máy khách REST (Người đưa thư) — Để kiểm tra API

Trước tiên, chúng ta nên xác minh xem chúng ta đã cài đặt NodeJS và MongoDB trên hệ thống chưa. Để làm điều đó, hãy mở dấu nhắc lệnh của bạn và chạy

node -v

Điều này xác minh rằng NodeJS đã được cài đặt. Chạy

mongo --version

Điều này xác minh rằng MongoDB đã được cài đặt trên hệ thống của bạn

Nếu NodeJS hoặc MongoDB chưa được cài đặt trên máy tính của bạn, bạn nên tải xuống phiên bản tương thích với hệ thống của mình tại đây (dành cho Node) và tại đây (fr Mongo) và cài đặt chúng trước khi tiếp tục

6 lựa chọn thay thế cho Yahoo Finance API. Nhà đầu tư theo hướng dữ liệu

Yahoo Finance API từ lâu đã là một công cụ đáng tin cậy cho nhiều nhà đầu tư dựa trên dữ liệu. Nhiều người đã dựa vào…

www. nhà đầu tư dữ liệu. com

Bây giờ, điều hướng đến một thư mục theo ý thích của bạn và tạo một thư mục mới cho dự án API REST của chúng tôi

// Create a new directory for your project
mkdir restApiTutorial
// Navigate into the new directory
cd restApiTutorial

Trong thư mục này, hãy khởi tạo dự án NodeJS bằng

mongo --version
2 và làm theo hướng dẫn để hoàn tất thiết lập

Giữ nguyên tất cả các trường ngoại trừ, thêm mô tả (tùy chọn) và tên của bạn là “tác giả”

Sau này, bạn sẽ có thể thấy rằng một tệp mới, gói. json đã được tạo trong thư mục của bạn

Mở thư mục dự án của bạn trong IDE ưa thích của bạn (của tôi là VS Code) và tạo một tệp mới —

mongo --version
3

Hãy cài đặt Express và sử dụng nó để chạy máy chủ NodeJS của chúng ta. Nếu bạn không quen thuộc với ExpressJS, hãy truy cập trang web chính thức để tìm hiểu thêm. Chúng tôi sẽ sử dụng

mongo --version
4 để cài đặt express và sau đó, các phụ thuộc khác

npm install express --save

Sau khi cài đặt, bạn có thể mở tệp

mongo --version
5 và xem express mà chúng tôi vừa cài đặt, bên dưới phần phụ thuộc

Tiếp theo, chúng ta sẽ chuyển sang

mongo --version
3 và thêm đoạn mã sau

// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});

Lưu tệp và chạy

mongo --version
7 trong dấu nhắc lệnh và bạn sẽ thấy điều này

Mở trình duyệt của bạn và truy cập vào http. //máy chủ cục bộ. 3000/

Xin chúc mừng. Chúng tôi đã thiết lập thành công máy chủ cấp tốc của mình

Mặc dù chúng tôi đã xác định tuyến đường “/” trong tệp

mongo --version
3 của mình, nhưng chúng tôi sẽ cấu trúc dự án của mình theo cách mà tất cả các tuyến đường api sẽ được xác định trong một tệp riêng biệt
Để làm được điều đó, chúng ta sẽ tạo một tệp
mongo --version
9 trong thư mục gốc của dự án và thêm đoạn mã sau vào đó

// Import express router
let Router = require('express').Router();
// Set default API response
Router.get('/', function (req, res){
res.json({
status: 'WORKING',
message: 'This is the /api/ route!'
});
});
// Export API routes
module.exports = Router;

Bây giờ hãy thêm đoạn mã sau vào

mongo --version
3 của bạn để có thể truy cập tuyến đường này

// Import routes
let apiRoutes = require("./routes")
// Use Api routes in the App
app.use('/api', apiRoutes)

sau đó khởi động lại máy chủ ứng dụng bằng cách kết thúc quy trình trên thiết bị đầu cuối của bạn bằng

// Create a new directory for your project
mkdir restApiTutorial
// Navigate into the new directory
cd restApiTutorial
1 hoặc
// Create a new directory for your project
mkdir restApiTutorial
// Navigate into the new directory
cd restApiTutorial
2 và bắt đầu lại bằng
mongo --version
7

Trong đoạn mã trên, chúng tôi đã nhập tệp

// Create a new directory for your project
mkdir restApiTutorial
// Navigate into the new directory
cd restApiTutorial
4 và hướng dẫn ứng dụng của chúng tôi sử dụng các tuyến đường này bất cứ khi nào người dùng truy cập vào
// Create a new directory for your project
mkdir restApiTutorial
// Navigate into the new directory
cd restApiTutorial
5 hoặc
// Create a new directory for your project
mkdir restApiTutorial
// Navigate into the new directory
cd restApiTutorial
6 trong trường hợp của chúng tôi. Kiểm tra xem nó có hoạt động không bằng cách truy cập http. //máy chủ cục bộ. 8080/api, bạn sẽ thấy màn hình này

Nó đã làm việc. Chúng tôi đang đạt được một số tiến bộ thực sự ở đây, hãy tiếp tục với phần hướng dẫn

Thiết lập MongoDB

Đầu tiên chúng ta sẽ cài đặt Mongoose và body-parser. Mongoose là một Trình ánh xạ dữ liệu đối tượng, về cơ bản, nó cho phép chúng ta xác định một mô hình trong ứng dụng của mình và lưu trữ mô hình đó trong cơ sở dữ liệu. Bạn có thể tìm hiểu thêm tại đây

Chạy lệnh sau trong thiết bị đầu cuối gốc dự án của bạn

npm install mongoose body-parser --save

Body-parser cho phép ứng dụng của bạn phân tích cú pháp dữ liệu từ một yêu cầu đến như dữ liệu biểu mẫu qua urlencode. Chúng tôi cần nhập cái này vào ứng dụng của mình và sử dụng chúng

Tôi sẽ cho bạn thấy toàn bộ

mongo --version
3 của chúng ta trông như thế nào sau khi nhập cầy mangut và trình phân tích cú pháp cơ thể

let express    = require('express'),
mongoose = require('mongoose'),
bodyParser = require('body-parser');
// Import routes
let apiRoutes = require("./routes")
// Initializing the app
let app = express();
// Configure bodyparser to handle post requests
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
// Connect to Mongoose and set connection variable
mongoose.connect("mongodb://localhost:27017/restApiDB", {useNewUrlParser: true, useUnifiedTopology: true});
var db = mongoose.connection;// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Use Api routes in the App
app.use('/api', apiRoutes);
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});

Trông được

Bây giờ để khởi động MongoDB, hãy mở một thiết bị đầu cuối khác và chạy lệnh

// Create a new directory for your project
mkdir restApiTutorial
// Navigate into the new directory
cd restApiTutorial
8 để khởi động Máy chủ MongoDB. Bạn sẽ nhận được một đầu ra như thế này

Để chạy lệnh mongod từ bất cứ đâu, bạn sẽ phải thêm đường dẫn đến thư mục bin của mongodb (trong Tệp chương trình) trong các biến môi trường PATH của bạn

Giữ cửa sổ này mở ở chế độ nền để sử dụng MongoDB

Bây giờ là lúc thiết lập bộ điều khiển của chúng tôi để xử lý các yêu cầu API và Mô hình để lưu/truy xuất dữ liệu từ cơ sở dữ liệu. Chúng tôi sẽ triển khai một mô hình dữ liệu đơn giản lưu trữ thông tin của một cuốn sách với các chi tiết sau

  • Chức vụ
  • Tác giả
  • thể loại

Chúng tôi sẽ triển khai các điểm cuối sau

  • // Create a new directory for your project
    mkdir restApiTutorial
    // Navigate into the new directory
    cd restApiTutorial
    9 liệt kê tất cả các cuốn sách
  • npm install express --save
    0 thêm sách mới
  • npm install express --save
    1 truy xuất thông tin của một cuốn sách
  • npm install express --save
    2 cập nhật thông tin của một cuốn sách
  • npm install express --save
    3 xóa một cuốn sách

Chúng tôi cần hai tệp mới —

npm install express --save
4 và
npm install express --save
5 — để triển khai các điểm cuối ở trên và xác định mô hình của chúng tôi

Dán đoạn mã sau vào tệp

npm install express --save
4 của bạn

// Import book model
Book = require('./bookModel');
// Handle index actions
exports.index = function (req, res) {
Book.get(function (err, books) {
if (err) {
res.json({
status: "error",
message: err,
});
}
res.json({
status: "success",
message: "Books retrieved successfully",
data: books
});
});
};
// Handle create book actions
exports.new = function (req, res) {
var book = new Book();
book.title = req.body.title ? req.body.title : book.title;
book.author = req.body.author;
book.genre = req.body.genre;
// save the book and check for errors
book.save(function (err) {
if (err)
res.json(err);
res.json({
message: 'New book created!',
data: book
});
});
};
// Handle view book info
exports.view = function (req, res) {
Book.findById(req.params.book_id, function (err, book) {
if (err)
res.send(err);
res.json({
message: '1 book found!',
data: book
});
});
};
// Handle update book info
exports.update = function (req, res) {
Book.findById(req.params.book_id, function (err, book) {
if (err)
res.send(err);
book.title = req.body.title ? req.body.title : book.title;
book.author = req.body.author;
book.genre = req.body.genre;
// save the book and check for errors
book.save(function (err) {
if (err)
res.json(err);
res.json({
message: 'Book Info updated',
data: book
});
});
});
};
// Handle delete book
exports.delete = function (req, res) {
Book.deleteOne({
_id: req.params.book_id
}, function (err, book) {
if (err)
res.send(err);
res.json({
status: "success",
message: 'Book deleted'
});
});
};

Bộ điều khiển xác định các phương thức (hàm) xử lý yêu cầu và phản hồi từ các điểm cuối API khác nhau. Trước hết, chúng tôi nhập

npm install express --save
7 và sử dụng phiên bản của nó để xử lý các chức năng CRUD (Tạo, Truy xuất, Cập nhật và Xóa) của API
Đây là mã cho
npm install express --save
5

mongo --version
0

Trong mô hình, chúng tôi nhập

npm install express --save
9 tạo lược đồ cơ sở dữ liệu cho sách và xuất mô-đun để có thể truy cập được. Bước cuối cùng sẽ là thêm các tuyến sách vào các điểm cuối api của chúng tôi
Đây là cách
mongo --version
9 của bạn cuối cùng sẽ trông như thế nào

mongo --version
1

Và đó là nó. Phù. Chúng tôi đã viết tất cả mã của mình, giờ là lúc kiểm tra các điểm cuối API của chúng tôi

Hãy thử với trình duyệt. Truy cập

// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
1 bạn sẽ nhận được màn hình này

Chúng tôi chưa có bất kỳ cuốn sách nào trong cơ sở dữ liệu. Chúng tôi sẽ thêm một số sách bằng cách sử dụng yêu cầu POST trên Postman

Postman là một ứng dụng để kiểm tra API, bằng cách gửi yêu cầu đến máy chủ web và nhận lại phản hồi. Nó cho phép người dùng thiết lập tất cả các tiêu đề và cookie mà API mong đợi và kiểm tra phản hồi

Người ta có thể tải xuống Ứng dụng gốc Postman tại đây

Người đưa thư rất dễ sử dụng. Nó cung cấp một tập hợp các lệnh gọi API và người ta phải tuân theo tập hợp các lệnh gọi API đó để thử nghiệm các API của ứng dụng

Người ta có thể chọn phương thức gọi API từ danh sách thả xuống đã cho, đặt thông tin Cấp phép, Tiêu đề, Nội dung theo lệnh gọi API
Các phương thức gọi API có sẵn trong Postman

Để thêm sách mới, hãy chọn phương pháp

// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
2 từ danh sách thả xuống, chọn tab
// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
3, cung cấp các giá trị cho hộp nhập
// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
4 bên dưới tab nội dung và nhấp vào gửi khi bạn hoàn tất. Xem ví dụ bên dưới

Sau khi nhấn gửi, bạn sẽ nhận được phản hồi như thế này

200 (OK) Mã phản hồi cho biết API REST đã thực hiện thành công bất kỳ hành động nào mà khách hàng yêu cầu

Bây giờ hãy thay đổi các giá trị và thêm một vài cuốn sách nữa. Sau đó thực hiện một yêu cầu

// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
5 để xem tất cả những cuốn sách như thế này

Chúng tôi cũng có thể kiểm tra điều này trên trình duyệt

Chúng tôi đã truy xuất thành công tất cả sách mà chúng tôi đã thêm vào cơ sở dữ liệu. Bây giờ bạn có thể tiếp tục và kiểm tra các yêu cầu

// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
6 và
// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
7. Đối với cả hai yêu cầu, bạn sẽ cần
// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
8 của đối tượng (ở đây, sách) mà bạn muốn cập nhật hoặc xóa. Đối với yêu cầu API
// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
6, đừng quên gửi cả dữ liệu cơ thể, giống như chúng tôi làm trong yêu cầu
// Importing express
let express = require('express');
// Initializing the app
let app = express();
// Define server port
const PORT = process.env.port || 3000;
// Send message for default route
app.get('/', function(req, res){
res.send("Express is running successfully!");
});
// Listen to specified port(always keep this at bottom of the file)
app.listen(PORT, function () {
console.log("Server has started on port " + PORT);
});
2

Làm cách nào để xây dựng API RESTful đơn giản với nodejs expressjs và MongoDB?

Trước tiên hãy thực hiện thiết lập cơ bản .
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

Làm cách nào để tạo API bằng MongoDB?

Bước 1. Thiết lập dự án
Bước 2. Cài đặt phụ thuộc ứng dụng
Bước 3. Mã vận hành
Bước 4. Ứng dụng thử nghiệm cho MongoDB REST API
Bước 5. Thiết lập kết nối với MongoDB REST API
Bước 6. Xây dựng điểm cuối API MongoDB REST
Bước 7. Kiểm tra API MongoDB REST

Làm cách nào để kết nối express js với MongoDB?

Kết nối với MongoDB Atlas . env file in the server directory. Ở đó, gán một biến ATLAS_URI mới cho giá trị của chuỗi kết nối. Thay thế

Làm cách nào để tạo API bằng Node JS và Express?

Bước 1. Tạo các thư mục cần thiết. Bước đầu tiên liên quan đến việc xây dựng Node js REST API yêu cầu bạn tạo các thư mục chứa mã cho Node js REST API. .
Bước 2. Tạo API Express cho ứng dụng đầu tiên của bạn. .
Bước 3. Tạo mô-đun người dùng. .
Bước 4. Tạo mô-đun xác thực