Tài liệu này được dịch bởi AI. Đối với bất kỳ thông tin không chính xác nào, vui lòng tham khảo phiên bản tiếng Anh
Trong NocoBase, mỗi yêu cầu (request) sẽ tạo ra một đối tượng ctx, đây là một thể hiện (instance) của Context. Context đóng gói thông tin về yêu cầu và phản hồi, đồng thời cung cấp các chức năng đặc thù của NocoBase như truy cập cơ sở dữ liệu, thao tác bộ nhớ đệm (cache), quản lý quyền hạn, quốc tế hóa (i18n) và ghi nhật ký (logging).
Application của NocoBase được xây dựng dựa trên Koa, vì vậy ctx về cơ bản là một Koa Context. Tuy nhiên, NocoBase đã mở rộng nó với nhiều API phong phú, giúp nhà phát triển dễ dàng xử lý logic nghiệp vụ trong Middleware và Action. Mỗi yêu cầu đều có một ctx độc lập, đảm bảo tính cô lập và bảo mật dữ liệu giữa các yêu cầu.
ctx.action cung cấp quyền truy cập vào Action đang được thực thi cho yêu cầu hiện tại. Bao gồm:
Hỗ trợ quốc tế hóa (i18n).
ctx.i18n cung cấp thông tin về ngôn ngữ/vùng miền (locale).ctx.t() được dùng để dịch chuỗi ký tự dựa trên ngôn ngữ.ctx.db cung cấp giao diện truy cập cơ sở dữ liệu, cho phép bạn trực tiếp thao tác với các model và thực thi các truy vấn.
ctx.cache cung cấp các thao tác bộ nhớ đệm (cache), hỗ trợ đọc và ghi vào cache, thường được dùng để tăng tốc truy cập dữ liệu hoặc lưu trữ trạng thái tạm thời.
ctx.app là thể hiện của ứng dụng NocoBase, cho phép truy cập vào cấu hình toàn cục, các plugin và dịch vụ.
ctx.auth.user lấy thông tin người dùng hiện tại đã được xác thực, phù hợp để sử dụng trong kiểm tra quyền hạn hoặc logic nghiệp vụ.
ctx.state được sử dụng để chia sẻ dữ liệu trong chuỗi middleware.
ctx.logger cung cấp khả năng ghi nhật ký (logging), hỗ trợ xuất nhật ký ở nhiều cấp độ khác nhau.
ctx.permission được sử dụng để quản lý quyền hạn, còn ctx.can() dùng để kiểm tra xem người dùng hiện tại có quyền thực hiện một thao tác cụ thể hay không.
ctx độc lập.ctx là một phần mở rộng của Koa Context, tích hợp các chức năng của NocoBase.ctx.db, ctx.cache, ctx.auth, ctx.state, ctx.logger, ctx.can(), ctx.t(), v.v.ctx trong Middleware và Action giúp bạn dễ dàng thao tác với các yêu cầu, phản hồi, quyền hạn, nhật ký và cơ sở dữ liệu.