Laf 客户端 SDK 使用指南:轻松实现前后端交互
laf 项目地址: https://gitcode.com/gh_mirrors/laf/laf
前言
在现代 Web 应用开发中,前后端分离已成为主流架构模式。Laf 提供的客户端 SDK 正是为了简化前端与 Laf 云服务的交互过程而设计。本文将详细介绍如何在不同环境中使用 Laf 客户端 SDK,帮助开发者快速实现云函数调用和数据库操作。
Laf 客户端 SDK 核心功能
Laf 客户端 SDK 主要提供两大核心功能:
- 云函数调用:前端直接调用部署在 Laf 云端的函数
- 数据库操作:前端安全地操作后端数据库(需配合访问策略)
安装 SDK
使用 npm 或 yarn 安装 Laf 客户端 SDK:
npm install laf-client-sdk
# 或
yarn add laf-client-sdk
初始化配置
初始化 Laf 客户端需要提供以下配置参数:
import { Cloud } from "laf-client-sdk";
const cloud = new Cloud({
baseUrl: "https://APPID.laf.run", // 替换为你的应用ID
dbProxyUrl: "/proxy/app", // 数据库访问策略入口
getAccessToken: () => localStorage.getItem("access_token"), // 获取token的方法
environment: "h5" // 运行环境
});
配置参数详解
- baseUrl:你的 Laf 应用地址,格式为
https://APPID.laf.run
- dbProxyUrl:数据库访问策略入口路径,格式为
/proxy/策略名
- getAccessToken:获取访问令牌的方法,返回 JWT token
- environment:指定运行环境,支持
h5
、wxmp
(微信小程序)、uniapp
不同环境下的使用
1. H5 环境使用
const cloud = new Cloud({
baseUrl: "https://APPID.laf.run",
getAccessToken: () => localStorage.getItem("access_token"),
environment: "h5"
});
2. 微信小程序环境使用
微信小程序使用需要特别注意构建流程:
const cloud = new Cloud({
baseUrl: "https://APPID.laf.run",
getAccessToken: () => wx.getStorageSync('access_token'),
environment: "wxmp"
});
微信小程序构建步骤
- 项目初始化:
npm init -y
- 安装 SDK:
npm i laf-client-sdk
- 修改项目配置(仅TypeScript项目需要):
// project.config.json
"setting": {
"packNpmManually": true,
"packNpmRelationList": [
{
"packageJsonPath": "./package.json",
"miniprogramNpmDistDir": "miniprogram/"
}
]
}
- 开发者工具中构建 npm
- 在页面中使用 SDK
3. Uni-app 环境使用
const cloud = new Cloud({
baseUrl: "https://APPID.laf.run",
getAccessToken: () => uni.getStorageSync("access_token"),
environment: "uniapp"
});
调用云函数
通过 SDK 调用云函数非常简单:
// 调用云函数并传递参数
const result = await cloud.invoke("getCode", {
phone: "13800138000"
});
// 处理返回结果
console.log(result);
注意:SDK 调用云函数仅支持 POST 请求方式。
数据库操作
通过 SDK 可以直接操作数据库,但需要配合访问策略确保安全性:
// 获取数据库实例
const db = cloud.database();
// 查询用户表数据
const users = await db.collection('user').get();
// 条件查询
const filteredUsers = await db.collection('user')
.where({ age: _.gt(18) }) // 查询年龄大于18的用户
.get();
数据库操作语法与云函数中基本一致,支持链式调用。
最佳实践建议
- 安全性:为数据库操作配置合理的访问策略
- 错误处理:对所有云函数调用添加 try-catch 处理
- 性能优化:合理使用数据库查询条件,避免全表扫描
- Token管理:实现自动刷新 token 的逻辑
- 环境区分:根据开发和生产环境动态配置 baseUrl
常见问题解答
Q:为什么推荐优先使用 HTTP 方式调用云函数?
A:HTTP 方式更通用,兼容性更好,且更容易调试和监控。
Q:数据库操作需要额外配置吗?
A:是的,需要通过访问策略明确前端可以执行哪些数据库操作。
Q:如何在小程序中处理 token 过期?
A:可以在 getAccessToken 方法中实现自动刷新 token 的逻辑。
总结
Laf 客户端 SDK 为前端开发提供了便捷的云端能力调用方式,无论是云函数调用还是数据库操作,都能通过简单的 API 实现。通过本文的介绍,相信你已经掌握了在不同环境中使用 Laf SDK 的方法,可以开始在你的项目中实践了。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考