初始化
@cloudbase/js-sdk 让您可以在 Web 端(如 PC Web 页面、微信公众平台 H5 等)使用 JavaScript 访问 Cloudbase 服务和资源。
当前@cloudbase/js-sdk latest 版本已升级至 v2 版本,若需使用 v1 版本,请参考v1 文档。
安装 SDK
- 包管理器
- CDN 全量引入
- CDN 按需引入
# npm
npm install @cloudbase/js-sdk -S
# yarn
yarn add @cloudbase/js-sdk
初始化 SDK
import cloudbase from "@cloudbase/js-sdk";
const app = cloudbase.init({
env: "your-env-id",
});
<script src="//static.cloudbase.net/cloudbase-js-sdk/${version}/cloudbase.full.js"></script>
<script>
const app = cloudbase.init({
env: "your-env-id",
});
</script>
<!-- 内核 -->
<script src="//static.cloudbase.net/cloudbase-js-sdk/${version}/cloudbase.js"></script>
<!-- 登录模块 -->
<script src="//static.cloudbase.net/cloudbase-js-sdk/${version}/cloudbase.auth.js"></script>
<!-- 云函数模块 -->
<script src="//static.cloudbase.net/cloudbase-js-sdk/${version}/cloudbase.functions.js"></script>
<!-- 云存储模块 -->
<script src="//static.cloudbase.net/cloudbase-js-sdk/${version}/cloudbase.storage.js"></script>
<!-- 数据库模块 -->
<script src="//static.cloudbase.net/cloudbase-js-sdk/${version}/cloudbase.database.js"></script>
<!-- 实时推送模块,引入前必须首先引入数据库模块 -->
<script src="//static.cloudbase.net/cloudbase-js-sdk/${version}/cloudbase.realtime.js"></script>
<script>
// 注册功能模块
registerAuth(cloudbase);
registerFunctions(cloudbase);
registerStorage(cloudbase);
registerDatabase(cloudbase);
registerRealtime(cloudbase);
registerModel(cloudbase);
registerAi(cloudbase);
const app = cloudbase.init({
env: "your-env-id",
});
</script>
💡 注意:功能模块必须在内核之后引入,并且登录模块必须引入
最新的版本号 version 可以前往 NPM 查看。
选择地域
init 初始化时可以指定 region,默认使用上海地域(ap-shanghai),目前支持的地域如下。
- 上海地域(默认)
- 广州地域
- 新加坡地域
// region 不填默认为上海地域
const app = cloudbase.init({
env: "your-env-id",
});
// 指定广州地域
const app = cloudbase.init({
env: "your-env-id",
region: "ap-guangzhou",
});
// 指定新加坡地域
// 使用此功能请升级 @cloudbase/js-sdk 至 2.21.0 及以后版本
const app = cloudbase.init({
env: "your-env-id",
region: "ap-singapore",
});
⚠️ 注意:当前使用的环境所属地域,必须与当前指定的地域信息一致!
国际化支持
使用此功能请升级 @loudbase/js-sdk 至 2.21.0 及以后版本
init 初始化时可以指定 lang,目前支持中文、英文两种语言,默认使用中文
- 中文(默认)
- 英文
// lang 不填或填写 zh-CN 则为中文
const app = cloudbase.init({
env: "your-env-id",
});
// 指定语言为英文
const app = cloudbase.init({
env: "your-env-id",
lang: "en-US",
});
客户端 Publishable Key
使用此功能请升级 @cloudbase/js-sdk 至 2.21.0 及以后版本
Publishable Key 实际是一个匿名用户权限,可以有效降低 MAU。它可以暴露在浏览器,用于请求公开访问的资源,如云函数、云托管等。其详细介绍请参考文档说明。
获取 Publishable key
可前往腾讯云开发平台API Key 配置中生成 Publishable key
使用 Publishable key
const app = cloudbase.init({
env: "xxxx-yyy",
accessKey: "Publishable Key", // 填入生成的 Publishable Key
});
⚠️ 注意:Publishable Key 只能生成一次,并且是长期有效的、不能删除的,请妥善保管
错误日志提示
@cloudbase/js-sdk 在开发环境下会将调用 API 的错误信息以更友好的方式打印到控制台,如下图所示:

图中打印的错误是当前的登录类型受到函数的安全规则限制,导致没有调用函数的权限。错误信息分为两部分:
- 上半部分的黑色字体提示包含了后端 API 返回的错误信息以及基于此报错的一些解决方案提示;
- 下半部分的红色字体是经优化后的错误堆栈,由于原始错误堆栈层次太深导致 debug 非常困难,所以此处打印的错误堆栈的第一条直接定位到 SDK 源码,第二条定位到调用报错 API 的业务源码。
优化的错误提示仅在开发环境中使用,根据 process.env.NODE_ENV 判断是否为开发环境。此外,定位到 SDK 源码需要借助 SourceMap。
以上两点依赖构建工具的部分特性,目前仅支持 Webpack 和 Rollup。
- Webpack
- Rollup
Webpack 4+ 版本配置:
module.exports = {
mode: "development",
};
旧版本 Webpack 配置:
const webpack = require("webpack");
module.exports = {
plugins: [
new webpack.DefinePlugin({
"process.env.NODE_ENV": JSON.stringify("development"),
}),
// ...其他插件
],
// ...其他配置
};
添加 sourcemap 预处理:
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: "pre",
use: ["source-map-loader"],
},
// ...其他rules
],
},
// ...其他配置
};
配置完成后启动 webpack-dev-server 即可。
Rollup 需要使用两个插件:
- rollup-plugin-replace 用来注入
process.env.NODE_ENV - rollup-plugin-sourcemaps 用来加载 sourcemap
import sourcemaps from "rollup-plugin-sourcemaps";
import replace from "rollup-plugin-replace";
export default {
plugins: [
sourcemaps(),
replace({
"process.env.NODE_ENV": JSON.stringify("development"),
}),
// ...其他插件
],
// ...其他配置
};
配置完成使用 rollup-plugin-serve 启动 dev server 即可。