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

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());

Đị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.

#dung #express #huong #mongodb #restful
Chia sẻ:
← Trước
Tạo Ứng Dụng Chat Real-Time Đỉnh Cao Với Socket.IO Và Node.js
Sau →
Deploy Ứng Dụng Node.js Lên Heroku Miễn Phí – Hướng Dẫn Chi Tiết

Bài viết tương tự

Bình luận

Chưa có bình luận. Hãy là người đầu tiên!