跳到主要内容

使用服务端 SDK 访问 CloudBase

如需在云函数中访问 CloudBase 的各项服务,例如操作数据库、管理云文件等,可使用 CloudBase 服务端 SDK。

例如,您可以在 Node.js 云函数中,使用 CloudBase Node.js SDK 调用 CloudBase 服务。

const cloudbase = require("@cloudbase/node-sdk");const app = cloudbase.init({  env: cloudbase.SYMBOL_CURRENT_ENV});
const db = app.database();
exports.main = async (event, context) => {  return db.collection("todos").get();};
提示

CloudBase 服务端 SDK 已经与云函数进行集成,无需手工填入密钥即可使用。

初始化 SDK#

const cloudbase = require("@cloudbase/node-sdk");const app = cloudbase.init({  env: cloudbase.SYMBOL_CURRENT_ENV});

调用云数据库#

const db = app.database();exports.main = async (event, context) => {  return db.collection("todos").get();};

调用云存储#

exports.main = async (event, context) => {  const fileStream = fs.createReadStream(path.join(__dirname, "demo.jpg"));  return await app.uploadFile({    cloudPath: "demo.jpg",    fileContent: fileStream  });};

调用其它云函数#

exports.main = async (event, context) => {  return await cloud.callFunction({    name: "sum",    data: {      x: 1,      y: 2    }  });};

获取用户信息#

当从客户端调用云函数时,如在小程序中或者 web 端使用微信登录授权,云函数的传入参数中会被注入用户的 openid,开发者无需校验 openid 的正确性,可以直接使用该 openid。与 openid 一起注入云函数的还有其它相关的用户身份信息。

//引用SDKconst tcb = require("@cloudbase/node-sdk");//初始化SDKconst app = tcb.init();//获取用户信息const userInfo = await app.auth().getUserInfo();const {  openId, //微信openId,非微信授权登录则空  appId, //微信appId,非微信授权登录则空  uid, //用户唯一ID  customUserId //开发者自定义的用户唯一id,非自定义登录则空} = userInfo;

参考#

更多详细信息请参考: