03/08/2018, 10:21

Bài 07: Chương trình quản lý học sinh trong NodeJS

Như vậy ở bài thứ 5 mình đã giới thiệu sơ lược cách hoạt động của Module ...

Như vậy ở bài thứ 5 mình đã giới thiệu sơ lược cách hoạt động của Module node-persist, vậy thì trong bài này chúng ta tiếp tục thực hành sử dụng module này để xây dựng một ứng dụng đơn giản đó là ứng dụng quản lý sinh viên. Trong ứng dụng này chúng ta chủ yếu sử dụng LocalStorage để lưu trữ danh sách sinh viên, đồng thời ta sẽ xây dựng các thao tác thêm, xóa, sửa sinh viên.

Vì trong bài này chúng ta đang thực hành căn bản nên các thao tác tạm thời do chúng ta tự kích hoạt nhé, sau này khi viết ứng dụng thực tiễn thì ta mới cho người dùng thực hiện.

1. Thư viện quản lý sinh viên NodeJS

Đề bài: Hãy viết chương trình quản lý sinh viên đơn giản bằng NodeJS gồm các chức năng sau:

  • Hiển thị danh sách sinh viên
  • Thêm mới sinh viên
  • Xóa sinh viên
  • Sửa sinh viên

Để đơn giản thì mỗi sinh viên ta sẽ lưu mã sinh viên và tên sinh viên.

Bài giải:

Nếu bạn chưa cài đặt node-persist thì hãy cài đặt nó trước đi nhé.

Bạn tạo một file tên là node-persist.js nằm ngoài thư mục gốc D:/nodejs-freetuts/, lúc này để chạy file này thì trong Command Prompt bạn cd đến thư mục này và gõ lệnh sau:

node node-persist.js

Ok, bây giờ ta sẽ lần lượt liệt kê các hàm theo yêu cầu của đề bài.

// Load module node-persist
var storage = require('node-persist');

// Hàm khởi tạo
// Load dữ liệu đã lưu trên ổ đĩa
storage.initSync({
    dir : "students" // cấu hình nơi lưu trữ dữ liệu nằm trong thư mục students
});

// Hàm lấy danh sách sinh viên
function getAllStudents()
{
   
}


// Hàm lấy chi tiết sinh viên
function getStudent(studentId)
{
   
}


// Hàm thêm một sinh viên
function addStudent(id, fullname)
{
   
}

// Hàm xóa sinh viên
function removeStudent(studentId)
{
    
}

// Hàm sửa sinh viên
function editStuent(studentId, studentName)
{
    
}

// Hàm hiển thị danh sách sinh viên
function showStudents()
{
   
}

Và sau đây là nội dung của từng hàm.

Load thư viện:

// Load module node-persist
var storage = require('node-persist');

// Hàm khởi tạo
// Load dữ liệu đã lưu trên ổ đĩa
storage.initSync({
    dir : "students"
});

Lấy danh sách sinh viên:

// Hàm lấy danh sách sinh viên
function getAllStudents()
{
    // Lấy sinh viên từ nơi lưu trữ
    var students = storage.getItemSync('students');
    
    // Nếu không có sinh viên nào thì trả về một mảng rỗng
    if (typeof students === "undefined"){
        return [];
    }
    
    // Ngược lại sẽ trả về danh sách sinh viên
    return students;
}

Lấy chi tiết một sinh viên:

// Hàm lấy chi tiết sinh viên theo id của sinh viên
function getStudent(studentId)
{
    // Lấy danh sách sinh viên
    var students = getAllStudents();
    
    // Biến lưu trữ sinh viên được tìm thấy
    var matchedStudent = null;
    
    // Lặp để tìm sinh viên
    for (var i = 0; i < students.length; i++){
        if (students[i].id === studentId){
            matchedStudent = students[i];
            break;
        }
    }
    
    return matchedStudent;
}

Thêm một sinh viên:

// Hàm thêm một sinh viên
function addStudent(id, fullname)
{
    var students = getAllStudents();
    
    students.push({
        id : id,
        fullname : fullname
    });
    
    storage.setItemSync('students', students);
}

Xóa sinh viên:

// Hàm xóa sinh viên
function removeStudent(studentId)
{
    var students = getAllStudents();
    
    for (var i = 0; i < students.length; i++){
        if (students[i].id === studentId){
            students.splice(i, 1);
        }
    }
    
    storage.setItemSync('students', students);
}

Sửa sinh viên:

// Hàm sửa sinh viên
function editStuent(studentId, studentName)
{
    var students = getAllStudents();

    for (var i = 0; i < students.length; i++){
        if (students[i].id === studentId){
            students[i].fullname = studentName;
        }
    }
    
    storage.setItemSync('students', students);
}

Hiển thị danh sách sinh viên:

// Hàm hiển thị danh sách sinh viên
function showStudents()
{
    var students = getAllStudents();
    students.forEach(function(student){
        console.log('Student: ' + student.fullname + ' (' + student.id + ')');
    });
}

Trong các hàm trên bạn thấy mình sử dụng vòng lặp để duyệt qua từng sinh viên và kiểm tra điều kiện và xử lý theo đề bài. Hy vọng bạn hiểu các hàm trên.

2. Cách sử dụng thư viện trên

Bây giờ bạn bổ sung phía dưới cùng một đoạn code như sau:

// Thêm sinh viên
addStudent(1, 'Cuong');
addStudent(2, 'Kinh');
addStudent(3, 'Chinh');
addStudent(4, 'Quyen');

// Hiển thị danh sách sinh viên
showStudents();

Chạy lên kết quả sẽ như hình dưới đây:

Tương tự để xóa một học sinh có id là 1 thì bạn sử dụng hàm sau:

removeStudent('1');

Tương tự cho các hàm còn lại.

3. Lời kết

Như vậy là chúng ta đã sử dụng thư viện node-persist để xây dựng thành công ứng dụng quản lý học sinh, đây là một ứng dụng đơn giản và chạy theo kiểu dạng console, nghĩa là các thao tác do bạn tự gõ ra. Nếu bạn nào thấy mình dạy hơi chậm thì mình cũng xin ghi nhận, và mình cũng giải thích luôn la do mình soạn theo kiểu step by step và có video nên rất phù hợp với newbie, bạn nào Pro thì có thể tự học sẽ nhanh hơn.

-------------------#####-------------------

DOWNLOAD TÀI LIỆU NODEJS

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

Bài liên quan

[C#] Download Source code chương trình quản lý phòng NET - lập trình Socket C#

Hôm nay, mình xin chia sẽ cho các bạn bộ source code lập trình mạng sử dụng Socket C# qua giao thức TCP/IP. Source code gồm 2 solution server và client. Trong lập trình, Socket là một API (Application Programming Interface) cung cấp các phương thức ...

Bùi Văn Nam viết 2 tuần trước

Các Câu Lệnh Trong MS SQL Server Và Ví Dụ Vào Bài Toán QUẢN LÝ HÀNG HÓA Trong Cửa Hàng (P2)

Như lần trước, chúng ta đã tạo được 3 bảng sản phẩm, loại hàng và hãng sản xuất ( đây là 3 bảng cơ bản để tạo chức năng quản lí hàng hóa đơn giản trong cửa hàng Sau đây, chúng ta cùng thực hiện 1 số thao tác trong quản lí hàng hóa của cửa hàng: 1. Lấy thông tin về sản phẩm trong cửa hàng a. ...

Vũ Văn Thanh viết 13:57 ngày 17/09/2018

Cách cài đặt phần mềm trên các cụm Kubernetes với trình quản lý gói Helm

Giới thiệu Helm là một trình quản lý gói cho Kubernetes cho phép các nhà phát triển và các nhà khai thác dễ dàng cấu hình và triển khai các ứng dụng trên các cụm Kubernetes. Trong hướng dẫn này, chúng ta sẽ thiết lập Helm và sử dụng nó để cài đặt, cấu hình lại, khôi phục, sau đó xóa một thể ...

Trịnh Tiến Mạnh viết 13:13 ngày 16/09/2018

Giới thiệu về Helm, Trình quản lý gói cho Kubernetes

Giới thiệu Triển khai các ứng dụng cho Kubernetes - hệ thống phối hợp thùng chứa mạnh mẽ và phổ biến - có thể phức tạp. Thiết lập một ứng dụng đơn lẻ có thể liên quan đến việc tạo ra nhiều tài nguyên Kubernetes phụ thuộc lẫn nhau - chẳng hạn như nhóm, dịch vụ, triển khai và bản sao - mỗi yêu cầu ...

Trần Trung Dũng viết 13:13 ngày 16/09/2018

Quản lý bộ nhớ trong lập trình blackberry

Như đã giới thiệu ở bài trước kiến trúc của blackberry: Vì vậy quản lý bộ nhớ trong lập trình blackberry tương ứng với quản lý bộ nhớ với ngôn ngữ C++, QML (interface) và của QT Framework. Bài viết này tôi sẽ giới thiệu với các bạn cách quản lý bộ nhớ của QTFramework với ngôn ngữ C++. ...

Hoàng Hải Đăng viết 15:50 ngày 07/09/2018
0