CRUD với NodeJs, Express và MongoDB

Tram Ho

1. Cài đặt môi trường

  • B1: Tạo một thư mục dự án
  • B2: Tạo file package.json – là file quản lý các dependency được cài đặt nội bộ. Để tạo file package.json, chúng ta cần khởi tạo npm
  • B3: Cài đặt Express
    • Express là một module thường được sử dụng kèm theo Node.js. Express chạy giữa server tạo bởi Node.js và các trang frontend của một ứng dụng web. Express cũng giải quyết định tuyến (routing) của ứng dụng, hướng người dùng đến đúng trang dựa trên sự tương tác của người dùng với ứng dụng.
    • Mặc dù có nhiều lựa chọn khác ngoài express tuy nhiên Express là đơn giản nhất để tìm hiểu về sự tương tác giữa phần backend Node.js và frondend
    • Cài đặt express

  • B4 : Tạo file app.js ở trong thư mục dự án

  • B5: Start server

2. Xây dựng ứng dụng

Trong bài viết này, chúng ta sẽ xây dựng một ứng dụng CRUD Course (thêm sửa xóa các Course)

1. Cấu trúc thư mục

  • Chắc hẳn bạn đã biết về mô hình MVC, ở ví dụ này chúng ta cũng sẽ xây dựng ứng dụng theo mô hình MVC bằng các tách cấu trúc thành các phần riêng biệt tùy theo chức năng của nó.

  • Chúng ta sẽ tạo ra 3 thư mục, models sẽ chứa code tương tác với database, thư mục controllsers chứa logic của ứng dụng xử lý các request từ client và response trả về, thư mục route giải quyết việc điều hướng.

2. Cấu hình Application Entry Point (File app.js)

  • Cài đặt các dependency

    • body-parser: Để giải quyết những HTTP POST request trong express.js từ version 4 trở lên, chúng ta cần mudule middleware body-parser. Body parser trích xuất toàn bộ phần body của request gửi đến và hiển thị chúng trên req.body
    • mongoose: là một thư viện ODM (Object Data Modeling) cho MongDB và Node.js, được sẻ dụng để chuyển các object (đối tượng) trong code thành những biểu diễn của những object này trong MongoDB.
    • morgan: là mộtn công cụ logging tuyệt vời khi làm việc với HTTP server trong Node.js, là một middleware cho phép chúng ta dễ dàng log những request, error ra console.
  • Import và set up các dependency

  • Set up mongoose: Sử dụng JavaScript promise để set up mongoose và bắt lỗi.

    Lưu ý:

    • Best practice là đặt URI ở .env và truy cập vào các biến môi trường trong file env với process.env.VAR_NAME
    • Các bạn có thể cài đặt MongoDB về máy hoặc có thể sử dụng cloud MongoDB Atlas. Để thiết lập MongoDB Atlas và lấy URI cho Database của bạn, bạn có thể tham khảo hướng dẫn
  • Set up cổng, định nghĩa route home và lắng nghe cổng

  • Start server: Mở terminal, ở thư mục project, chạy:

    Kết quả khi kết nối database thành công và chạy ứng dụng ở cổng 5035:

3. Tạo Model

  • Trước tiên chúng ta sẽ đi vào ví dụ tạo Caurse. Ứng dụng cho phép nhập tiêu đề và mô tả cho course và course được tạo sẽ được lưu trong MongoDB cho phép client có thể truy xuất khi cần. Model đầu tiên chúng ta tạo sẽ là course.js trong thư mục models.
  • File course.js: Đầu tiên chúng ta import mongoose và định nghĩa một schema

4. Tạo Controller

  • Tạo một file course.js trong thư mục controllers

  • Import mongoose và model course mà chúng ta export khi tạo model course.

  • Tạo course: Đàu tiên chúng ta khởi tạo một Course với giá trị tương ứng với các key trong courseSchema. Sử dụng phương thức save() của mongoDB để lưu dữ liệu vào DB. Return một promise trả lại response cho client nếu save thành công và xử lý lỗi nếu có lỗi xảy ra.

5. Tạo route

  • Tạo file main.js ở trong thư mục routes.

    Lưu ý : Import express và createCourse từ controller

  • Ở file app.js

    Chúng ta import route từ file main.js trong thư mục route. Thiết lập route với prefix là api

6. Testing với Postman


Như vậy là ta đã tạo thành công một course mới và đã lưu đc vào MongoDB.

7. Get list course

1. Controller

  • File course.js trong thư mục controllers

2. Route

  • File main.js trong thư mục route

3. Kết quả

8. Get single course

1. Controller

  • File course.js trong thư mục controllers

2. Route

  • File main.js trong thư mục route

3. Kết quả

9. Update course

1. Controller

  • File course.js trong thư mục controllers
  • Lưu ý: Đối với update của mongoDB ta dùng toán tử $set

2. Route

  • File main.js trong thư mục route

3. Kết quả

10. Delete course

1. Controller

  • File course.js trong thư mục controllers
  • Lưu ý: Đối với update của mongoDB ta dùng toán tử $set

2. Route

  • File main.js trong thư mục route

Kết luận

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo