hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • NodeJS
Giới thiệu tổng quan về ứng dụng Server Side

Giới thiệu tổng quan về ứng dụng Server Side

  • 26-08-2024
  • Toanngo92
  • 0 Comments

Mục lục

  • 1.1 Kiến trúc Client-Server là gì?
  • 1.2 Lập trình phía máy chủ

1.1 Kiến trúc Client-Server là gì?

Hãy xem xét ví dụ khi người dùng sử dụng máy ATM để rút tiền mặt. Người dùng cắm thẻ vào máy ATM, nhập mã PIN, và yêu cầu số tiền cần rút. Khi yêu cầu này được xử lý, nếu số tiền đó lớn hơn số dư trong tài khoản, máy ATM sẽ thông báo lỗi. Nếu số tiền yêu cầu hợp lệ, máy ATM sẽ chuyển tiếp yêu cầu này đến máy chủ của ngân hàng, kiểm tra số dư, và sau đó cho phép máy ATM rút tiền và giao cho người dùng.

Trong trường hợp này, người dùng tương tác với máy ATM, nhưng đằng sau đó có một loạt các quy trình diễn ra trên máy chủ. Khi thẻ được cắm vào máy ATM, máy sẽ đọc và gửi thông tin đến máy chủ để xác nhận tính hợp lệ của thẻ. Nếu thẻ hợp lệ, máy chủ sẽ yêu cầu người dùng nhập mã PIN. Khi mã PIN được nhập, máy chủ sẽ kiểm tra xem mã này có khớp không. Nếu khớp, máy chủ sẽ gửi tín hiệu đến máy ATM để tiếp tục quy trình và xử lý yêu cầu rút tiền.

Do đó, máy ATM và các máy chủ ngân hàng phối hợp để tạo ra kiến trúc client-server.

Kiến trúc máy khách máy chủ

Trong đó:

  • Client (Máy khách): Là thiết bị của người dùng như máy tính, điện thoại di động, hay laptop. Máy khách gửi yêu cầu đến máy chủ thông qua mạng internet hoặc mạng cục bộ.
  • Local Network/Internet (Mạng nội bộ/Internet): Là mạng trung gian truyền tải yêu cầu từ máy khách đến máy chủ và phản hồi ngược lại từ máy chủ đến máy khách.
  • Server (Máy chủ): Là hệ thống hoặc dịch vụ xử lý yêu cầu từ máy khách, lưu trữ dữ liệu và trả lại phản hồi.

Như đã thảo luận trước đó, máy chủ thực hiện các tác vụ mà nó nhận được từ các lệnh của người dùng thông qua client. Để thực hiện những tác vụ này, nhiều chương trình khác nhau chạy trên máy chủ.

Mô tả ba khái niệm:

  1. Client (Máy khách): Còn được gọi là “front-end,” là nơi người dùng thực hiện các hành động như gửi yêu cầu qua giao diện người dùng.
  2. Server (Máy chủ): Còn được gọi là “back-end,” là nơi xử lý dữ liệu, lưu trữ thông tin, và thực hiện các tác vụ phức tạp để đáp ứng các yêu cầu từ máy khách.
  3. Network (Mạng): Là phương tiện trung gian để kết nối giữa máy khách và máy chủ, bao gồm các mạng nội bộ, internet, bộ định tuyến, cáp, và các thiết bị mạng khác.

1.2 Lập trình phía máy chủ

Như đã thảo luận trước đó, máy chủ thực hiện các tác vụ mà nó nhận được từ các lệnh của người dùng thông qua client. Để thực hiện những tác vụ này, nhiều chương trình khác nhau chạy trên máy chủ.

Bài tập

Bài 1:

Sử dụng NodeJS, Express, MySQL và EJS để xây dựng ứng dụng với các tính năng sau:

Quản lý phim:
- Lấy danh sách phim.
- Lấy thông tin chi tiết của phim theo ID.
- Thêm phim mới.
- Cập nhật thông tin phim theo ID.
- Xóa phim theo ID.

Quản lý diễn viên:
- Lấy danh sách diễn viên.
- Lấy thông tin chi tiết của diễn viên theo ID.
- Thêm diễn viên mới.

Quan hệ giữa phim và diễn viên:
- Lấy danh sách diễn viên của một phim theo ID.
- Lấy danh sách phim của một diễn viên theo ID.
- Thêm diễn viên vào phim.

- Sử dụng thư viện phù hợp (ví dụ: mysql2) để kết nối với MySQL.
- Sử dụng thư viện phù hợp (ví dụ: express-validator) để xác thực dữ liệu đầu vào.
- Sử dụng thư viện dotenv để quản lý các biến môi trường.

Bai 2:

Sử dụng NodeJS, Express và MongoDB để xây dựng API với các tính năng sau:

1. Quản lý sinh viên:
- GET /api/students: Lấy danh sách sinh viên.
- GET /api/students/:id: Lấy thông tin chi tiết của sinh viên theo ID.
- POST /api/students: Thêm sinh viên mới.
- PUT /api/students/:id: Cập nhật thông tin sinh viên theo ID.
- DELETE /api/students/:id: Xóa sinh viên theo ID.

2. Quản lý lớp học:
- GET /api/classes: Lấy danh sách các lớp học.
- GET /api/classes/:id: Lấy thông tin chi tiết của lớp học theo ID.
- POST /api/classes: Thêm lớp học mới.
- PUT /api/classes/:id: Cập nhật thông tin lớp học theo ID.

3. Quan hệ giữa sinh viên và lớp học:
- GET /api/students/:id/classes: Lấy danh sách các lớp học của một sinh viên theo ID.
- GET /api/classes/:id/students: Lấy danh sách sinh viên của một lớp học theo ID.
- POST /api/students/:id/classes/:id: Thêm sinh viên vào lớp học.

- Sử dụng thư viện mongoose để kết nối với MongoDB.
- Sử dụng thư viện express-validator để xác thực dữ liệu đầu vào.
- Sử dụng thư viện dotenv để quản lý các biến môi trường.

---

 Giao diện người dùng

- Sử dụng ReactJS để tạo giao diện đơn giản với các tính năng sau:
- Hiển thị danh sách sinh viên.
- Thêm sinh viên mới.
- Cập nhật thông tin sinh viên.

Bài tập 3:

Sử dụng NodeJS, Express và MongoDB để xây dựng API với các tính năng sau:

1. Quản lý sản phẩm:
- **GET /api/products**: Lấy danh sách các sản phẩm.
- **GET /api/products/:id**: Lấy thông tin chi tiết của sản phẩm theo ID.
- **POST /api/products**: Thêm sản phẩm mới.
- **PUT /api/products/:id**: Cập nhật thông tin sản phẩm theo ID.
- **DELETE /api/products/:id**: Xóa sản phẩm theo ID.

2. Quản lý danh mục:
- **GET /api/categories**: Lấy danh sách các danh mục.
- **GET /api/categories/:id**: Lấy thông tin chi tiết của danh mục theo ID.
- **POST /api/categories**: Thêm danh mục mới.
- **PUT /api/categories/:id**: Cập nhật thông tin danh mục theo ID.

3. Quan hệ giữa sản phẩm và danh mục:
- **GET /api/products/:id/categories**: Lấy danh sách các danh mục của một sản phẩm theo ID.
- **GET /api/categories/:id/products**: Lấy danh sách sản phẩm thuộc danh mục theo ID.
- **POST /api/products/:id/categories/:id**: Thêm sản phẩm vào danh mục.

---

Yêu cầu bổ sung:
- **Sử dụng mongodb hoặc mongoose** để kết nối với MongoDB.
- **Sử dụng express-validator** để xác thực dữ liệu đầu vào.
- **Sử dụng dotenv** để quản lý các biến môi trường.

---

Giao diện người dùng:
- **Sử dụng ReactJS** để tạo giao diện đơn giản với các tính năng:
- Hiển thị danh sách sản phẩm.
- Thêm sản phẩm mới.
- Cập nhật thông tin sản phẩm.

Tính năng mở rộng:
- Cho phép người dùng chọn danh mục khi thêm hoặc cập nhật sản phẩm.

Bài tập 4:

Sử dụng NodeJS, Express và mongoose để xây dựng API với các tính năng sau:

Quản lý người dùng:

  1. GET /api/users: Lấy danh sách người dùng.
  2. GET /api/users/
     
    : Lấy thông tin chi tiết của người dùng theo ID.
  3. POST /api/users: Thêm người dùng mới.
  4. PUT /api/users/
     
    : Cập nhật thông tin người dùng theo ID.
  5. DELETE /api/users/
     
    : Xóa người dùng theo ID.

Quản lý đơn hàng:

  1. GET /api/orders: Lấy danh sách các đơn hàng.
  2. GET /api/orders/
     
    : Lấy thông tin chi tiết của đơn hàng theo ID.
  3. POST /api/orders: Thêm đơn hàng mới.
  4. PUT /api/orders/
     
    : Cập nhật thông tin đơn hàng theo ID.
  5. DELETE /api/orders/
     
    : Xóa đơn hàng theo ID.

Quan hệ giữa người dùng và đơn hàng:

  1. GET /api/users/
     
    /orders: Lấy danh sách đơn hàng của một người dùng theo ID.
  2. GET /api/orders/
     
    /user: Lấy thông tin người dùng của một đơn hàng theo ID.
  3. POST /api/users/
     
    /orders/
     
    : Thêm đơn hàng vào người dùng.
  • Sử dụng thư viện mongoose để kết nối với mongodb.
  • Sử dụng thư viện express-validator để xác thực dữ liệu đầu vào.
  • Sử dụng thư viện dotenv để quản lý các biến môi trường.
  • Yêu cầu sử dụng bcrypt cho trường password của user
  • Tạo 1 route login test tính năng đăng nhập

Bài viết liên quan:

Cài đặt NodeJS trên môi trường windows

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

2. PHÂN TÍCH VÀ ĐẶC TẢ HỆ THỐNG

1. TỔNG QUAN KIẾN THỨC THỰC HÀNH TRIỂN KHAI DỰ ÁN CÔNG NGHỆ THÔNG TIN

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền

Mẫu prompt tạo mô tả chi tiết bối cảnh

Một số cải tiến trong ASP.NET Core, Razor Page, Model Binding, Gabbage collection

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×