06/04/2021, 14:50

Node-persist - Local Storage trên Server - NodeJS căn bản

Để lưu trữ dữ liệu tạm thời thì trong Javascript HTML5 có khái niệm LocalStorage và SessionStorage, còn trong PHP thì có khái niệm session. Vậy trong NodeJS có cách nào để lưu trữ dữ liệu tạm thời hay không? Có đấy các bạn, chúng ta sẽ sử dụng module node-persist để lưu trữ dữ liệu tạm thời trên ...

Để lưu trữ dữ liệu tạm thời thì trong Javascript HTML5 có khái niệm LocalStorage và SessionStorage, còn trong PHP thì có khái niệm session. Vậy trong NodeJS có cách nào để lưu trữ dữ liệu tạm thời hay không? Có đấy các bạn, chúng ta sẽ sử dụng module node-persist để lưu trữ dữ liệu tạm thời trên Server (không lưu trong hệ quản trị CSDL mà lưu file và bộ nhớ).

1. Module node-persist là gì?

Node-persist là một Module được xây dựng dành cho NodeJS, đây là Module có công dụng tương tự như LocalStorage trong HTML5 và Sesion trong PHP. Node-persist không sử dụng database để lưu trữ dữ liệu mà thay vào đó nó sẽ lưu vào một file trong hệ thống hoặc trong bộ nhớ với nội dung là chuỗi JSON hoặc file (có tên theo key).

Vì dữ liệu lưu trữ trong bộ nhớ RAM hoặc ổ đĩa (disk) nên tốc độ xử lý dữ liệu lưu trữ của node-persist không kém phần lưu trữ trong database. Node-persist sử dụng phương thức localStorage trong HTML5 nên việc tiếp xúc nó rất dễ dàng.

2. Cài đặt node-persist

Ở bài trước chúng ta đã thực hành cài đặt rồi, nhưng để cho trọn bài thì trong bài này mình sẽ hướng dẫn cài đặt lại để những bạn chưa biết có thể xem trực tiếp trong bài này luôn.

Để cài đặt Node-persists thì bạn mở NodeJS Command Prompt lên và cd tới thư mục project D:/nodejs-Zaidap.com/localstorage rồi nhập vào đoạn mã sau:

npm install node-persist@0.0.8 --save

Sau đó bạn vào thư mục node_modules thì sẽ thấy nó đã được donwload về, đồng thời bạn mở file package.json lên thì thấy dữ liệu file này cũng đã được cập nhật (xem lại bài trước).

3. Cách sử dụng node-persist

Sau đây là các hàm được tích hợp sẵn trong node-persist mà bạn có thể sử dụng.

Trước khi sử dụng một module nào thì bạn phải sử dụng hàm require để tạo đối tượng module đó.

var storage = require('node-persist');

Hàm khởi tạo:

Trước khi sử dụng thì ta phải thiết lập hàm khởi tạo để nó load tất cả các key lưu trữ trong ở cứng.

storage.initSync();
// hoặc
storage.init().then(promise);

Hàm khởi tạo này sẽ có một tham số truyền vào ở dạng Object, trong đó có nhiều key và bạn cần chú ý đến 2 key như sau:

storage.init({
    dir : "path/to/save",
    ttl : false
});

storage.initSync({
    dir : "path/to/save",
    ttl : false
});

Trong đó key dir là đường dẫn lưu trữ dữ liệu. Nếu bạn không thiết lập thì nó sẽ lưu vào đường dẫn như sau: node-modules/node-persist/storage/persist. Còn nếu bạn thiết lập thì nó sẽ lưu vào đường dẫn node-modules/node-persist/storage/duong_dan

Còn ttl (time to live) là thời gian sống của dữ liệu, nếu thiết lập false thì nó sẽ sống vĩnh viễn.

Đối với hàm init() thì tất cả những phần xử lý có sử dụng các hàm của node-persist đều phải đặt trong promise nhé, nếu không sẽ bị lỗi ngay.

storage.init().then(function(){
    // Gọi các hàm setItem, getItem
});

Hàm get:

Hàm get dùng để lấy giá trị của một key nào đó, nếu key không tồn tại thì nó sẽ trả về undefined.

storage.getItem('domain');
// hoặc
storage.getItemSync('domain');

Hàm set:

Hàm set dùng để thiết lập giá trị cho một key nào đó.

storage.setItem('domain', 'Zaidap.com');
// hoặc
storage.setItemSync('domain', 'Zaidap.com');

Hàm remove:

Hàm remove dùng để xóa một key nào đó.

storage.removeItem('domain');
// hoặc
storage.removeItemSync('domain');

Hàm clear:

Hàm clear dùng để xóa tất cả các key trong bộ nhớ và ổ đĩa.

storage.clear();
// hoặc
storage.clearSync();

Trên là các hàm thông dung hay sử dụng, vẫn còn khá nhiều hàm nên nếu bạn muốn tìm hiểu thì tham khảo trang này nhé.

4. Thực hành

Xem bài tiếp theo.

5. Lời kết

Thực ra khi tìm hiểu Module này thì sẽ phải tìm hiểu đến khái niệm đồng bộ, bất đồng bộ và Promise. Nhưng vì các bạn mới học cho nên chúng ta tạm thời gác qua vấn đề đó nhé, nếu tìm hiểu ngay bài này thì bạn sẽ điên đầu ngay đấy.

Ok bài này xong, bài tiếp theo chúng ta tìm hiểu về một ví dụ cách sử dụng node-persist để viết chương trình quản lý sinh viên.

Hoàng Hải Đăng

24 chủ đề

7226 bài viết

Cùng chủ đề
0