Xây Dựng RESTful API Với Express.js và MongoDB: Hướng Dẫn Chi Tiết

17/03/2026 P T P Chung 6 phút đọc 0 bình luận

Mở đầu

Trong bối cảnh công nghệ hiện nay, việc xây dựng các ứng dụng web và mobile thường đòi hỏi một hệ thống backend mạnh mẽ và linh hoạt. RESTful API đã trở thành tiêu chuẩn để kết nối giữa client và server, cho phép trao đổi dữ liệu một cách có cấu trúc và hiệu quả. Trong bài viết này, chúng ta sẽ khám phá cách xây dựng một RESTful API đơn giản nhưng hoàn chỉnh bằng Express.js và MongoDB, hai công nghệ phổ biến trong hệ sinh thái JavaScript.

Vì sao chọn Express.js và MongoDB?

Express.js là một framework nhẹ nhàng và linh hoạt cho Node.js, giúp lập trình viên xây dựng server-side nhanh chóng. Nó cung cấp các tính năng cơ bản như routing, middleware, và hỗ trợ nhiều plugins. MongoDB, mặt khác, là một cơ sở dữ liệu NoSQL phổ biến, cho phép lưu trữ dữ liệu dạng document (JSON-like), rất phù hợp với các ứng dụng hiện đại.

Kết hợp Express.js với MongoDB giúp tạo ra một hệ thống backend mạnh mẽ, dễ mở rộng và thân thiện với các ứng dụng client.

Cài đặt và chuẩn bị

Trước khi bắt đầu, bạn cần cài đặt Node.js và npm trên máy. Sau đó, tạo một project mới và cài đặt các package cần thiết:

npm init -y
npm install express mongoose body-parser

- express: framework web cho Node.js. - mongoose: library giúp kết nối và làm việc với MongoDB. - body-parser: middleware để parse request body.

Thiết lập kết nối MongoDB

Để kết nối với MongoDB, bạn có thể sử dụng dịch vụ MongoDB Atlas hoặc cài đặt local. Sau khi có URI, bạn thiết lập kết nối trong file server.js:

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

const app = express();

mongoose.connect('mongodb://localhost:27017/mydb', { useNewUrlParser: true, useUnifiedTopology: true });

app.use(bodyParser.json());

Quảng cáo

300x250 In-Content Advertisement

Định nghĩa Model với Mongoose

Với MongoDB, bạn cần định nghĩa schema cho dữ liệu. Ví dụ, nếu bạn xây dựng một API quản lý users, bạn có thể tạo file models/User.js:

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({ name: String, email: String, age: Number });

module.exports = mongoose.model('User', userSchema);

Xây dựng RESTful API

GET - Lấy danh sách users

app.get('/api/users', async (req, res) => {
  try {
    const users = await User.find();
    res.json(users);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

GET - Lấy user theo ID

app.get('/api/users/:id', async (req, res) => {
  try {
    const user = await User.findById(req.params.id);
    if (!user) return res.status(404).json({ message: 'Not found' });
    res.json(user);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

POST - Tạo user mới

app.post('/api/users', async (req, res) => {
  const user = new User({
    name: req.body.name,
    email: req.body.email,
    age: req.body.age
  });

try { const newUser = await user.save(); res.status(201).json(newUser); } catch (err) { res.status(400).json({ message: err.message }); } });

PUT - Cập nhật user

app.put('/api/users/:id', async (req, res) => {
  try {
    const user = await User.findById(req.params.id);
    if (!user) return res.status(404).json({ message: 'Not found' });

user.name = req.body.name; user.email = req.body.email; user.age = req.body.age;

const updatedUser = await user.save(); res.json(updatedUser); } catch (err) { res.status(400).json({ message: err.message }); } });

DELETE - Xóa user

app.delete('/api/users/:id', async (req, res) => {
  try {
    await User.findByIdAndDelete(req.params.id);
    res.json({ message: 'Deleted successfully' });
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

Chạy server

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(Server running on port ${PORT}));

Kết luận

Qua bài viết này, chúng ta đã cùng nhau xây dựng một RESTful API đơn giản nhưng đầy đủ chức năng với Express.js và MongoDB. Việc sử dụng các công nghệ này giúp tiết kiệm thời gian phát triển và tăng khả năng mở rộng cho ứng dụng. Hy vọng bài viết đã cung cấp cho bạn cái nhìn tổng quan và thực hành để bắt đầu dự án backend của riêng mình.

Quảng cáo

728x90 Bottom Advertisement

Thay thế bằng mã Google AdSense

Chia sẻ bài viết

Facebook Twitter

Bình luận

Chia sẻ ý kiến của bạn về bài viết này

Viết bình luận

Bình luận của bạn sẽ được kiểm duyệt trước khi hiển thị

Chưa có bình luận nào

Hãy là người đầu tiên bình luận về bài viết này!