云开发控制台是管理云开发资源的地方,控制台提供以下能力:
以上的能力当中,数据库、文件管理与云函数,是可以通过小程序的API接口或者服务端 SDK 进行调用的,下一节会进一步介绍。
客户端,这里是指在小程序端中。如果要使用云开发能力,请做以下配置:
app.json / game.json
中, 中增加字段 "cloud": true
//app.js App({
onLaunch: function () {
wx.cloud.init({
traceUser: true });
}
});
在用户管理中会显示使用云能力的小程序的访问用户列表,默认以访问时间倒叙排列,访问时间的触发点是在小程序端调用 wx.cloud.init
方法,且其中的 traceUser
参数传值为 true
。
// 选择图片 wx.chooseImage({ success: dRes => { // 上传图片 const uploadTask = wx.cloud.uploadFile({ cloudPath: `${Date.now()}-${Math.floor(Math.random(0, 1) * 10000000)}.png`, // 随机图片名 filePath: dRes.tempFilePaths[0], // 本地的图片路径 success: console.log, fail: console.error
});
}, fail: console.error,
});
const db = wx.cloud.database();
db.collection('blog').get().then((res) => {
let data = res.data; console.log(data);
});
wx.cloud.callFunction({ name: 'addblog', // 云函数名称 data: { // 传到云函数处理的参数 title: '云开发 TCB', content: '存储、数据库存、云函数' }
}).then(res => { console.log(res)
}).catch((err) => { console.error(err);
});
如果你想在云函数中,操作文件、数据库和云函数资源,你可以使用我们提供的服务端 SDK 进行操作。首先,进入到你的某个云函数中,安装以下依赖包:
npm i --save tcb-admin-node
在云函数中初始化
// 初始化示例 const app = require('tcb-admin-node'); // 初始化资源 // 云函数下不需要secretId和secretKey。 // env如果不指定将使用默认环境 app.init({
secretId: 'xxxxx',
secretKey: 'xxxx',
env: 'xxx' }); //云函数下使用默认环境 app.init() //云函数下指定环境 app.init({
env: 'xxx' });
const app = require('tcb-admin-node');
app.init();
app.uploadFile({
cloudPath: "cover.png",
fileContent: fs.createReadStream(`${__dirname}/cover.png`)
}).then((res) => { console.log(res);
}).catch((err) => { console.error(err);
});;
const app = require('tcb-admin-node');
app.init();
const db = app.database();
db.collection('blogs').limit(10).get().then((res) => { console.log(res);
}).catch((err) => { console.error(err);
});;
const app = require("tcb-admin-node");
app.init();
app.callFunction({
name: 'addblog', // 云函数名称
data: { // 传到云函数处理的参数
title: '云开发 TCB',
content: '存储、数据库存、云函数' }
}).then((res) => { console.log(res);
}).catch((err) => { console.error(err);
});
通过本章,相信你已经知道如何在小程序端和服务端使用 SDK 去操作各类云资源。接下来,我们会分别详情讲述云函数、数据库和存储详细的使用方法。
大部份的接口,目前都支持两种写法,分别是 Promise 和 Async/Await,本节以 callFunction
作为例子,在云函数
中介绍这两种写法。 Async/Awai
t 本质上是基于 Promise
的一种语法糖,它只是把 Promise
转换成同步的写法而已。
const app = require("tcb-admin-node");
app.init();
exports.main = (event, context, callback) => {
app.callFunction({
name: 'addblog', // 云函数名称
data: { // 传到云函数处理的参数
title: '云开发 TCB',
content: '存储、数据库存、云函数' }
}).then((res) => { console.log(res);
callback(null, res.data);
}).catch((err) => {
callback(err);
});
};
const app = require("tcb-admin-node");
app.init();
exports.main = async (event, context) => { let result = null; try {
result = await app.callFunction({
name: 'addblog', // 云函数名称 data: { // 传到云函数处理的参数 title: '云开发 TCB',
content: '存储、数据库存、云函数' }
});
} catch (e) { return e;
} return result;
};
copyright ©2014 广州好客信息科技有限公司 粤ICP备16117691号-1 广州市天河区天河路518号901室D89房