Lovefield Javascript Relational Database
Javascript
269
Database
24
AngularJS
23
White

Cùi Bắp viết ngày 31/03/2016

1. Giới thiệu:

  • Lovefield, một relational database được viết hoàn toàn bởi JavaScript & được phát triển bởi Google.
  • Cung cấp cú pháp truy vấn tương tự SQL
  • Hoạt động trên cross-browser (Hỗ trợ Chrome 37+, Firefox 31+, IE 10+, Safari 5.1+).
  • Lovefield có thể được sử dụng cùng với Angular/Bootstrap/Polymer,..
  • Mình biết tới thư viện này khi coi chuỗi video 100 days of Google Dev.

alt text

2. Hướng dẫn sử dụng:

  • Tải thư viện: Sử dụng 1 trong 3 cách sau.

  • Cách sử dụng:

    • Thêm thư viện vào trang web:
    <script src="bower_components/lovefield/dist/lovefield.min.js"></script>
    
    • Khởi tạo Database có tên là todo, số 1 chính là version của DB.
    var schemaBuilder = lf.schema.create('todo', 1);
    
    • Tạo cấu trúc bảng của DB todo
    schemaBuilder.createTable('Item').
    addColumn('id', lf.Type.INTEGER).
    addColumn('description', lf.Type.STRING).
    addColumn('deadline', lf.Type.DATE_TIME).
    addColumn('done', lf.Type.BOOLEAN).
    addPrimaryKey(['id']).
    addIndex('idxDeadline', ['deadline'], false, lf.Order.DESC);
    
    • Insert bản ghi vào DB và tiến hành truy vấn toàn bộ cơ sở dữ liệu:
    var todoDb;
    var item;
    schemaBuilder.connect().then(function(db) {
      todoDb = db;
      item = db.getSchema().table('Item');
      var row = item.createRow({
        'id': 1,
        'description': 'Get a cup of coffee',
        'deadline': new Date(),
        'done': false
      });
      return db.insertOrReplace().into(item).values([row]).exec();
    }).then(function() {
        return todoDb.select().from(item).where(item.done.eq(false)).exec();
    }).then(function(results) {
        results.forEach(function(row) {
            console.log(row['description'], 'before', row['deadline']);
        });
    });
    

Ngoài ra, Lovefield còn cung cấp cho chúng ta rất nhiều query như Join, Where, Order, các bạn có thể tham khảo thêm ở: https://github.com/google/lovefield/blob/master/docs/spec/04_query.md

3. Thực hành:

Trong bài viết này mình sẽ sử dụng AngularJS 1.x và thư viện Lovefield để tạo một ứng dụng quản lý Task đơn giản.
Dữ liệu Task được lưu trong indexedDB. Mỗi khi có deadline của một task nào đó rơi thời gian hiện tại, sẽ có notification và âm thanh báo tới người dùng. Nhớ chọn allow notification khi truy cập nhé.

alt text

Thử xem dữ liệu đã lưu ra sao trong indexedDB:

alt text

Link Demo

http://euclid1990.github.io/task/

Source Code

(Được viết từ nửa năm trước, do up lên để chạy demo nên có cả thư mục bower_components :joy:)
https://github.com/euclid1990/task

4. Tham khảo:

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Cùi Bắp

16 bài viết.
93 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
79 3
Bài viết này được dịch từ (Link) https://code.facebook.com/ mà theo mình khá hữu ích đối với web developer. Trong hai năm qua, Facebook đã làm việ...
Cùi Bắp viết gần 2 năm trước
79 3
White
55 9
Bài viết này xin đề cập tới Nginx Load balancing 1. Thế nào Load Balancing Load Balancing hay còn gọi là Cân bằng tải ?? một kỹ thuật thường đư...
Cùi Bắp viết 2 năm trước
55 9
White
18 0
Nhân tiện vừa đọc bài viết liên quan tới OpenCV trên Kipalog, nên em xin giới thiệu về giải thuật sinh ảnh mosaic từ một ảnh gốc. Không hiểu sinh ả...
Cùi Bắp viết hơn 2 năm trước
18 0
Bài viết liên quan
White
12 11
Khi các bạn viết sử dụng AngularJS có thấy thắc mắc về phần làm thế nào để mình viết 1 function mà có thể sử dụng cho toàn bộ app của mình không? V...
My Mai viết hơn 3 năm trước
12 11
White
20 5
Tạo ứng dụng chat với 50 dòng code, Firebase và AngularJS Từ lúc viết blog tới giờ, mình chưa có bài nào hướng dẫn các bạn tạo ra một sản phẩm từ ...
Huy Hoàng Phạm viết 3 năm trước
20 5
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
16 bài viết.
93 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!