Module node-persist Node Js


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-freetuts/localstorage rồi nhập vào đoạn mã sau:
1
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 đó.
1
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.
1
2
3
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:
1
2
3
4
5
6
7
8
9
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.
1
2
3
storage.init().then(function(){
    // Gọi các hàm setItem, getItem
});
Lưu ý:
  • Hàm nào có chữ sync tức là đồng bộ, còn không có chữ sync là bất động bộ
  • Khi bạn khởi tạo bằng hàm init() thì các hàm còn lại phải sử dụng không Sync, còn khi bạn sử dụng initSync() thì các hàm còn lại phải sử dụng có Sync. Điều này có nghĩa là khởi tạo hàm nào thì các hàm còn lại phải dùng ở chế độ tương tự.
  • Nếu thiết lập dạng Sync thì dữ liệu sẽ lưu trên disk, vì vậy bạn có thể sử dụng ở các request tiếp theo.
  • Nếu thiết lập dạng không Sync thì dữ liệu sống trong request đó thôi.

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.
1
2
3
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 đó.
1
2
3
storage.setItem('domain', 'freetuts');
// hoặc
storage.setItemSync('domain', 'freetuts');

Hàm remove:

Hàm remove dùng để xóa một key nào đó.
1
2
3
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.
1
2
3
storage.clear();
// hoặc
storage.clearSync();

https://freetuts.net/node-persist-local-storage-tren-server-589.html

No comments

Powered by Blogger.