Skip to main content

Using server-side SDK to access CloudBase

If you need to access various services of CloudBase in cloud functions, such as operating databases or managing cloud files, you can use the CloudBase server-side SDK.

For example, you can use CloudBase Node SDK to call CloudBase services in Node.js cloud functions.

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();
};
Tip

CloudBase server-side SDK is integrated with cloud functions and can be used without manually entering keys.

Initialize the SDK

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

Invoke Database

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

Invoke Cloud Storage

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

Invoke Other Cloud Functions

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

Obtain User Information

When calling a cloud function from the client side, such as when using WeChat login authorization in a mini program or web end, the user's openid is injected into the incoming parameters of the cloud function. Developers do not need to verify the correctness of the openid and can directly use the openid. Other relevant user identity information is also injected into the cloud function along with the openid.

// Reference SDK
const tcb = require("@cloudbase/node-sdk");
// Initialize SDK
const app = tcb.init();
// Obtain User Information
const userInfo = await app.auth().getUserInfo();
const {
openId, // WeChat openId, empty if not authorized via WeChat
appId, // WeChat appId, empty if not authorized via WeChat
uid, // User unique ID
customUserId // Developer-defined user unique id, empty if not using custom login
} = userInfo;

References

For more details, see: