概述
自 v3.1 版本起,@cloudbase/js-sdk 已内置 Node.js 适配器,无需额外安装 @cloudbase/node-sdk 或 @cloudbase/adapter-node,即可在 Node.js 环境(云函数、云托管、自建服务器等)中使用完整的云开发能力。
提示
node 版本要求 >= 16.0
安装
# npm
npm install @cloudbase/js-sdk@next -S
# yarn
yarn add @cloudbase/js-sdk@next
部分服务端功能依赖以下可选包,按需安装:
| 依赖包 | 用途 | 何时需要安装 |
|---|---|---|
@cloudbase/signature-nodejs | 请求签名(TC3-HMAC-SHA256) | 使用 secretId / secretKey 鉴权时 |
jsonwebtoken | 自定义登录票据签发 | 调用 auth.createTicket 时 |
ws | WebSocket 连接 | 使用实时数据推送时 |
# 按需安装
npm install @cloudbase/signature-nodejs jsonwebtoken ws
初始化
基本用法
const cloudbase = require("@cloudbase/js-sdk");
const app = cloudbase.init({
env: "your-env-id", // 替换为您的环境 ID
});
初始化参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
env | string | 否 | TCB 环境 ID。云函数环境下不传则使用当前环境 ID |
accessKey | string | 否 | Cloudbase API Key,优先级最高的鉴权方式。也可通过环境变量 CLOUDBASE_APIKEY 配置 |
auth | object | 否 | 认证配置,包含 secretId、secretKey、credentials 等 |
auth.secretId | string | 否 | 腾讯云 API 密钥对,前往 腾讯云控制台/API 密钥管理 生成。也可通过环境变量 TENCENTCLOUD_SECRETID 配置 |
auth.secretKey | string | 否 | 腾讯云 API 密钥对。也可通过环境变量 TENCENTCLOUD_SECRETKEY 配置 |
auth.credentials | object | 否 | 自定义登录私钥,包含 private_key、private_key_id、env_id,用于 createTicket 签发登录凭据。前往 云开发平台/身份认证/登录方式 的「自定义登录」下载私钥 |
context | object | 否 | 函数型云托管入口函数的 context 参数,用于免签名调用 |
timeout | number | 否 | 请求超时时间(ms),默认 15000 |
登录鉴权
服务端 SDK 可以使用 不同鉴权方式 访问云开发资源,支持以下鉴权方式(任选其一):
| 鉴权方式 | 说明 |
|---|---|
| 默认鉴权(云函数/云托管环境) | 无需传入参数,自动从环境变量读取密钥信息 |
| API Key | 将服务端 API Key 配置到环境变量 CLOUDBASE_APIKEY,SDK 自动读取 |
| Publishable Key | 在 init 中传入 accessKey,使用匿名角色身份访问 |
secretId + secretKey | 在 init 中显式传入腾讯云 API 密钥对 |
context | 云托管场景,通过入口函数 context 参数实现免签名调用 |
鉴权示例
- 云函数环境(默认鉴权)
- 云托管环境
- Publishable Key
- secretId + secretKey
- API Key
在云函数环境中,SDK 会自动从环境变量中读取鉴权信息,此鉴权信息为临时访问凭证,无需手动配置。
const cloudbase = require("@cloudbase/js-sdk");
const app = cloudbase.init({
env: "your-env-id",
});
exports.main = async (event, context) => {
// 直接使用各项云开发能力
};
在函数型云托管环境中,通过传入 context 参数实现免签名调用。
💡 注意:如果传入了
context参数但没有env参数,则会使用context中的envID参数作为环境 ID。
const cloudbase = require("@cloudbase/js-sdk");
exports.main = async (event, context) => {
const app = cloudbase.init({
context,
});
// 使用各项云开发能力
};
Publishable Key 详细介绍请 参考文档说明 。
- 用户权限:匿名用户权限
- 有效期:长期有效
- 获取方式:通过云开发平台/ApiKey 管理获取
import tcb from "@cloudbase/node-sdk";
const app = tcb.init({
env: "your-env-id",
accessKey: "your-publishable-key",
});
前往 腾讯云控制台/API 密钥管理 生成密钥对。
const cloudbase = require("@cloudbase/js-sdk");
const app = cloudbase.init({
env: "your-env-id",
auth: {
secretId: "your-secretId",
secretKey: "your-secretKey",
},
});
可以通过环境变量 CLOUDBASE_APIKEY 配置,在云函数中开启 API key设置,添加 CLOUDBASE_APIKEY,SDK 自动读取。

const cloudbase = require("@cloudbase/js-sdk");
// 无需显式传入,SDK 自动从环境变量读取
const app = cloudbase.init({
env: "your-env-id",
});
环境信息
parseContext
app.parseContext(context: object): object
解析云函数入口函数的 context 参数,将运行时环境变量转换为结构化对象。
- 仅在云函数环境中有效
参数
context
object
云函数入口函数的 context 参数
返回
返回值
Object
示例
- 基础示例
const cloudbase = require("@cloudbase/js-sdk");
exports.main = async (event, context) => {
const app = cloudbase.init({ env: "your-env-id" });
const envObj = app.parseContext(context);
console.log(envObj);
};
身份认证
服务端除了以下专属接口外,也可以调用客户端身份认证的所有接口