如需在云函数中访问 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
一起注入云函数的还有其它相关的用户身份信息。
//引用SDK
const tcb = require("@cloudbase/node-sdk");
//初始化SDK
const app = tcb.init();
//获取用户信息
const userInfo = await app.auth().getUserInfo();
const {
openId, //微信openId,非微信授权登录则空
appId, //微信appId,非微信授权登录则空
uid, //用户唯一ID
customUserId //开发者自定义的用户唯一id,非自定义登录则空
} = userInfo;
参考
更多详细信息请参见: