Skip to content

Dashboard

Giới thiệu về Keystonejs

Created by Admin

KeystoneJS là gì?

KeystoneJS là một CMS mã nguồn mở dựa trên Node.js và là một framework tạo ứng dụng web được phát triển bởi Jed Watson vào năm 2013. KeystoneJS giúp chúng ta dễ dàng tạo ra các trang web database-driven, cái ứng dụng web và API. Nền tảng chính của KeystoneJS là Express và MongoDB.

Express là một web framework tối giản dành cho Node.js. Nó cung cấp cho bạn rất nhiều phương thức HTTP và middleware tiện lợi. MongoDB thì là một database non-relational rất mạnh mẽ với khả năng truy xuất data rất nhanh.

Với những tính chất như vậy, cùng với cấu trúc theo module và sự phân tách rõ ràng trong các tính năng của mình, KeystoneJS rất phù hợp để phát triển các ứng dụng quy mô lớn như các cổng thông tin, diễn đàn, hệ thống quản lý nội dung (CMS), các dự án thương mại điện tử, và các dịch vụ RESTful web.

Cấu trúc của KeystoneJS

KeystoneJS sử dụng cấu trúc Model View Template. Trong một cấu trúc framework điển hình như vậy, các tính năng được phân chia rất rõ ràng thành các phần hiển thị, business và truy cập dữ liệu.

  • Truy cập dữ liệu - Model: Đây là tầng để truy cập dữ liệu. Nó định nghĩa data được xử lý thế nào ở trong ứng dụng. Các phép xác minh, chuyển hóa hay biến đổi dữ liệu sẽ được thực hiện ở đây.

  • Logic Business - View: Trong một framework truyền thống, tầng view chỉ đơn giản là hiển thị data ra ngoài màn hình. Trong KeystoneJS, nó là một tầng logic business chứa các logic truy cập vào model, còn có thể được biết đến như là một controller. Nó đóng vai trò là một cầu nối giữa các model và các template.

  • Hiển thị - Templates: Đây là tầng hiển thị, nó sẽ hiển thị data ra trên màn hình.

Những điểm đặc trưng của KeystoneJS

KeystoneJS cung cấp một bộ các thành phần tiêu chuẩn cho phép các developer xây dựng các ứng dụng web của mình nhanh chóng với Javascript. Nó có những điểm đáng chú ý làm nó trở thành một framework đáng để nghĩ đến khi bạn đang muốn tìm một công cụ tốt cho dự án tiếp theo của mình.

  • Quản lý session: KeystoneJS được tích hợp sẵn tính năng quản lý session và authentication, bao gồm tự động mã hóa mật khẩu.
  • Routing: KeystoneJS cung cấp một router cho phép bạn thể hiện bạn muốn đường dẫn trang web hay đường dẫn API của mình trông như thế nào.
  • Form Validation: KeystoneJS được tính hợp sẵn tính năng form validation. Bạn muốn validate một form, upload một tấm ảnh hay update database của mình chỉ với một dòng. Keystone có thể làm được hết, miễn là bạn cung cấp model cho nó.
  • Tính Module: KeystoneJS sẽ cài đặt Express hộ bạn. Nó cũng sử dụng Mongoose để kết nối trực tiếp đến MongoDB và nó phân định view, route cũng như template rất gọn gàng bằn cách cho chúng có các thư mục nhất định của riêng mình. -Giao diện admin được tạo tự động: Dù bạn dùng nó trong ứng dụng của mình hay sử dụng nó làm hệ thống quản lý nội dung database, giao diện tự động này sẽ giúp bạn tiết kiệm rất nhiều thời gian và làm cho việc quản lý data của bạn trở nên đơn giản hơn nhiều.
  • Quản lý e-mail: Bạn có thể cài đặt, preview và gửi các e-mail được tạo bởi template từ ứng dụng của mình một cách dễ dàng với Keystone. Nó còn được tích hợp sẵn với Mandrill.
  • Database trực quan: ID, String, Boolean, Date và Number là xương sống của bất kỳ database nào. Keystone cũng được xây dựng dựa trên chúng với các trường tiện dụng, gần với ngôn ngữ nói của chúng ta như name, email, password, address, image và các trường relationship.

Những thứ bạn cần để sử dụng KeystoneJS

Để sử dụng được KeystoneJS, trước đó bạn cần phải cài đặt các công cụ này:

  • Node.js: Chắc không cần phải giới thiệu gì nhiều nữa. Trong trường hợp bạn chưa có sẵn thì hãy truy cập trang web của Node.js và cài bản mới nhất về máy của mình.
  • MongoDB: Vào trang web mongodb và cài đặt phiên bản MongoDB community server. Nếu bạn đang sử dụng Mac, tôi khuyến khích bạn làm theo hướng dẫn này. Để tránh hiện tượng micromanaging từ terminal, tôi cũng khuyến khích các bạn cài đặt một MongoDB GUI, Robo 3T, còn được biết đến là RoboMongo. Sau khi cài bạn thể chạy lệnh mongod từ terminal để khởi động dịch vụ MongoDB trên máy của mình.
  • Yeoman: Nếu chưa có sẵn yeoman trên máy của mình, hãy cài đặt nó với lệnh npm install -g yo.

Bắt đầu một dự án mới với KeystoneJS

Tôi đã nhắc đến ở phía trên là KeystoneJS có thể giúp chúng ta phát triển các ứng dụng một cách nhanh chóng. Và để minh họa cho câu nói của mình, sau đây tôi sẽ giới thiệu cho các bạn về các bước khởi tạo một dự án mới rất dễ dàng và đơn giản với KeystoneJS.

  • Đầu tiên chúng ta chạy lệnh dưới đây để cài đặt bộ generator Yeoman rất mạnh mẽ dành cho KeystoneJS
npm install -g generator-keystone
  • Tiếp theo chúng ta tạo ra folder cho dự án của mình rồi cd vào nó. Ví dụ ở đây tôi đặt tên cho dự án của mình là blog
mkdir blog && cd blog
  • Rồi chúng ta chạy lệnh generator trong folder dự án của mình
yo keystone
  • Và đây là bước yêu thích của tôi khi khởi tạo một dự án Keystone. Một vị thần đèn sẽ xuất hiện và hỏi bạn mong muốn gì ở dự án của mình. Trả lời các câu hỏi của thần đèn và các yêu cầu của bạn sẽ được tích hợp sẵn ngay khi dự án được generate ra.

  • Đến đây các bước khởi tạo của chúng ta đã xong, bạn có thể chạy project mới của mình bằng lệnh

node keystone

Theo mặc định, project của chúng ta sẽ chạy ở cổng 3000 nên bạn có thể xem thử bằng đường dẫn http://localhost:3000

KeystoneJS đã tạo sẵn cho chúng ta một vài UI cơ bản như sign in, contact. Bạn thậm chí có thể sign in vào ngay lập tức nếu đã chọn tạo user từ trước với thần đèn ở bước phía trên.

Vậy là các bạn đã có ứng dụng web với những tính năng cơ bản nhất, chỉ cần thực hiện vài câu lệnh đơn giản và thậm chí không cần code tính năng đăng ký để có một user có thể sử dụng được ngay. Đây chính là một trong nhiều điểm tuyệt vời của KeystoneJS mà tôi chắc bạn sẽ thích.

Kết luận

Ngoài những gì đã nêu, tôi còn muốn giới thiệu cho các bạn rất nhiều điều về KeystoneJS nữa nhưng chắc tôi sẽ dành điều đó lại cho những bài viết sau, nơi tôi sẽ hướng dẫn các bạn về cách tạo ra một ứng dụng hoàn chỉnh bằng framework này. Trong bài viết này tôi chỉ giới thiệu ở mức cơ bản nhất về KeystoneJS nhưng mong là chừng đó cũng đủ làm các bạn thấy hứng thú đến mức muốn thử trải nghiệm framework này cho riêng mình.

Xin cảm ơn các bạn đã dành thời gian theo dõi bài viết và hẹn gặp lại trong các bài viết sau!

Source: https://viblo.asia/p/gioi-thieu-ve-keystonejs-yMnKM80r57P