Cấu trúc thư mục nodejs express

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.

    // create new directory
    mkdir server
    // change to server directory
    cd server
    // add three more directories
    mkdir controllers models routes
    

  • 2. Cấu hình Application Entry Point [File app.js]

    • Cài đặt các dependency

      // npm install the needed dependencies
      npm install body-parser morgan mongoose --save
      
      • 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ột 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

      // import dependencies
      import express from 'express';
      import bodyParser from 'body-parser';
      import mongoose from 'mongoose';
      import logger from 'morgan';
      
      // set up dependencies
      const app = express[];
      app.use[bodyParser.json[]];
      app.use[bodyParser.urlencoded[{ extended: false }]];
      app.use[logger['dev']];
      
    • Set up mongoose: Sử dụng JavaScript promise để set up mongoose và bắt lỗi.

      // set up mongoose
      mongoose.connect[, { useNewUrlParser: true, useUnifiedTopology: true }];
        .then[[]=> {
          console.log['Database connected'];
        }]
        .catch[[error]=> {
          console.log['Error connecting to database'];
        }];
      

      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

      // set up port
      const port = 5035;
      // set up route
      app.get['/', [req, res] => {
        res.status[200].json[{
          message: 'Welcome to Project with Nodejs Express and MongoDB',
        }];
      }];
      app.listen[port, [] => {
        console.log[`Our server is running on port ${port}`];
      }];
      
    • Start server: Mở terminal, ở thư mục project, chạy:

      node app.js
      

      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
      npm install express --save
      
      0

    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.

      npm install express --save
      
      1
    • 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.

    Chủ Đề