什么是迷你程序云开发
迷你程序·云开发是由微信团队和腾讯云团队共同开发的一组基本迷你程序功能。简而言之,云功能将成为迷你计划的基本功能。整个功能集基于 新启动的 (基础)开发的完整迷你程序后端开发解决方案。
迷你程序云开发为开发人员提供了完整的云过程,从而简化了后端开发,操作和维护的概念。如果没有构建服务器,就可以使用平台提供的核心业务开发的API,可以实现快速的在线和迭代。
该解决方案当前提供三个基本功能支持:
将来,我们将整合更多的服务功能,以为迷你计划提供更强大的云支持。
如何使用迷你程序·云开发
以上是迷你程序和云开发的简单用法图:在迷你程序上,直接使用官方接口,在云功能上直接使用官方节点SDK来操作您的云资源。过去没有数据库构建和文件系统部署在开发迷你程序时担心。
您只需要在Mini计划开发IDE中进行云开发,将其打开,填写环境ID,就可以具有迷你程序的云功能!
当然,使用云开发不会排除原始的后端体系结构。通过以下体系结构,您也可以与原始后端服务无缝兼容,并简化一些微型程序身份验证的逻辑:
接下来,我将告诉您如何从迷你程序和服务器端使用这些云资源。
使用云能力小组
客户,这里是指迷你程序。如果要使用云开发功能,请进行以下配置:
//app.js
App({
onLaunch: function () {
wx.cloud.init({
traceUser: true // 用户信息会显示在云开发控制台的用户面板中
});
}
});
微型程序初始化功能文档
在用户管理中,将显示使用云功能的迷你程序的访问用户列表。默认情况下,安排了访问时间闪回。触发时间的触发点是在Mini程序上调用WX..INIT方法,参数传递值为真。
服务器端
如果要在云功能中操作文件,数据库和云功能资源,则可以使用我们提供的服务器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'
});
服务器端初始化文档
贮存
云开发提供存储空间,上传文件,下载文件和CDN加速文件访问。开发人员可以通过微型程序和服务器端上的API使用这些功能。
迷你计划
// 选择图片
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 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);
});;
安慰
上传的文件将显示在控制台中,如下图所示。您可以在控制台中删除,下载或查看图像详细信息。
您还可以控制文件的整体权限,这里有一些特定的介绍。
服务器端存储文档
数据库
Mini 提供了一个文档类型数据库( - ),其中包含多个集合(相当于关系数据中的表)。该系列类似于JSON数组。数组中的每个对象都是记录,并且记录的格式是JSON文档。 。
每个记录都有一个_id字段来唯一标记此记录,并且一个字段来标记记录的创建者,即的用户。开发人员可以自定义_id,但不能在Mini程序上(可以在服务器上)。它是由系统根据的默认用户而创建的,当创建文档时,开发人员可以使用它来识别和找到文档。
数据库API分为两个部分:微型程序和服务器。微型程序API对呼叫权限具有严格的控制,并且开发人员可以直接在微型程序中调用API来执行非敏感的数据操作。对于具有较高安全性要求的数据,可以通过云功能中的服务器API操作。云功能的环境与客户端完全隔离,并且数据库可以在云功能上私下且安全地操作。
数据库API包含添加,删除,修改和查询的功能。使用API操作数据库只需要三个步骤:获取数据库参考,构建查询/更新条件以及发出请求。请记住,在操作数据库之前,请在控制台中创建它。
迷你计划
const db = wx.cloud.database();
// 插入数据
db.collection('photo').add({
data: {
photo: 'cloud://tcb-xxx/05ca1d38f86f90d66d4751a730379dfa6584dde05ab4-Ma9vMN_fw658.jpg',
title: '风景'
}
});
// 提取数据
db.collection('photo').get().then((res) => {
let data = res.data;
console.log(data);
});
// 输出
// 在小程序端, _openid 会自动插入到数据库中
{
photo: 'cloud://tcb-xxx/05ca1d38f86f90d66d4751a730379dfa6584dde05ab4-Ma9vMN_fw658.jpg',
title: '风景',
_openid: 'oLlMr5FICCQJV-QgVLVzKu2312121'
}
迷你程序数据库文档
服务器端
const app = require('tcb-admin-node');
app.init();
const db = app.database();
db.collection('photo').limit(10).get().then((res) => {
console.log(res);
}).catch((err) => {
console.error(err);
});
// 输出
// 因为是在服务端,其它用户的也可以提取出来
{
photo: 'cloud://tcb-xxx/05ca1d38f86f90d66d4751a730379dfa6584dde05ab4-Ma9vMN_fw658.jpg',
title: '风景',
_openid: 'oLlMr5FICCQJV-QgVLVzKu4312121'
}
{
photo: 'cloud://tcb-xxx/0dc3e66fd6b53641e328e091ccb3b9c4e53874232e6bf-ZxSfee_fw658.jpg',
title: '美女',
_openid: 'DFDFEX343xxdf-QgVLVzKu3312121'
}
{
photo: 'cloud://tcb-xxx/104b27e339bdc93c0da15a47aa546b6e9c0e3359c315-L8Px2Y_fw658.jpg',
title: '动物',
_openid: 'DFDFEX343xxdf-QgVLVzKu3412121'
}
服务器数据库文档
安慰
您可以看到控制台中用户运行的数据,还可以自己添加,更新或删除控制台上的数据。
如果数据量很大,则可以设置索引以提供查询的效率。
数据库还可以通过设置权限来控制每个。
云功能
云功能是在云中运行的一块代码。它不需要管理服务器,可以单击一键上载和部署在开发工具中。
开发人员可以在云功能中获取每个调用的上下文(等),并可以获得自然信任的用户登录状态()。
迷你计划
wx.cloud.callFunction({
name: 'addblog', // 云函数名称
data: { // 传到云函数处理的参数
title: '云开发 TCB',
content: '存储、数据库存、云函数'
}
}).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);
});
服务器端云功能文档
安慰
上传后的云功能将在此处列出。
每次调用云功能时,您都可以在此处看到日志,还可以构建测试的参数以进行调试。
句法糖
大多数接口当前支持两种写作方法,即和/。本节以示例为例,在云功能中介绍这两种写作方法。 /本质上是基于句法糖,它只是将其转换为同步写作。
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;
};
当用于云功能时,由于它是节点8.9或更高的环境,因此自然支持/问题方法。但是,如果您想在迷你过程中使用它,则需要其他介绍,例如此开源项目:
开发人员资源
由于迷你程序云开发基于腾讯云的云开发和开发功能,因此腾讯云和迷你程序中都有许多开发人员资源。这是您的参考: