了解uniCloud最好的途径就是官方网站,其中有两个部分的内容,是我们做技术选型的时候,需要了解的。

什么是 uniCloud ?

uniCloud 是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。

uniCloud 的价值

对于程序员,从此你又get一个新技能,用熟悉的js,轻松搞定前后台整体业务。

对于开发商: 

开发成本大幅下降。不用再雇佣php或java等服务器工程师,每年至少节省几十万;

你只需专注于你的业务,其他什么服务器运维、弹性扩容、防DDoS攻击,全都不需要操心;

如果不发布H5版,你将不需要购买备案域名。小程序和App可以免域名使用服务器;

对于敏捷性业务,前后端分离的沟通成本实在没有必要。可以考虑按业务负责分工,而不是按前后台分工。

uniCloud 的运行原理

开发和运行流程

开发者在HBuilderX里为项目新建 uniCloud 云环境(可选择阿里云或腾讯云),在云函数目录下编写js代码,上传部署云函数到阿里云或腾讯云的 serverless 环境中。

前端代码通过uniCloud.callFunction()方法调用云函数。

云函数中可执行js运算、读写云化数据库(NoSQL)、读写存储和CDN、操作网络,给前端返回数据

开发过程,连接DCloud服务器;运行过程是手机端直连阿里云或腾讯云 serverless 环境,不通过DCloud服务器中转。

uniCloud 的底层环境,和微信小程序云开发、支付宝小程序云开发的基建环境相同。功能、性能、稳定性有足够的保障。腾讯云云开发(CloudBase)提供基础 serverless 能力,微信团队基于该能力封装了微信云开发,而DCloud团队基于该能力封装了 uniCloud。阿里云类似。

小程序云开发已蔚然成风,微信小程序、支付宝小程序、百度小程序均提供了云开发。微信公布已有50万以上的开发者在使用云开发了,微信自己的生活缴费、乘车码等大日活应用均使用云开发。不过这个流行技术一直无法跨端,它们都只支持各自的小程序。uniCloud解决了跨端问题,让uni-app的所有端应用,都可以使用云开发这个利器。 

uniCloud 基建部分主要包括如下3部分:

云函数:在云端运行的js代码。运行在定制过的node环境中,有良好的性能和强大的功能。serverless环境无需自行加购服务器处理增容,云函数按量付费,不管多大的并发都扛得住(阿里云serverless已经经过了双11的考验)。

数据库:可在云函数中读写的、基于 NoSQL 的 JSON 数据库。这种数据库对于前端工程师更自然,不需要学习SQL、不需要理解关系型和设计主键。

存储和CDN:不管在前端还是云函数中,都可以操作存储和CDN。在uniCloud提供的安全机制下,可以实现应用前端直传CDN,避免服务器中转的耗时和带宽占用,且不会发生盗传。

uniCloud 目前计费系统还未开发完毕,暂时免费。计费系统上线后,收费标准也会低于传统云主机租用费用。

看到这里,有莫有很心动?

云开发确实是未来的趋势。作为全栈工程师需要用拥抱变化的心态,大胆尝试前人开发的轮子。

和uni—app一样,我们也快速上手一下uniCloud,按照官网上快速上手的步骤 Hello uniCloud 一下。

1

创建uniCloud项目

创建项目的时候,按照下图中标注的地方,设置即可。

2

创建和绑定服务器

PS:如果创建云服务器选项是灰的,就直接访问:

进行云服务器创建也是可以的。

说明

如果未进行实名认证,会跳转至实名认证页面进行实名认证,等待实名认证审核之后可以开通服务空间。若腾讯云实名认证提示身份证下已创建过多账户,则需要在腾讯云官网注销不用的账户。

创建服务空间可能需要几十秒的时间,可以在web控制台查看是否创建完成。

一个应用,可以在dev.dcloud.net.cn设置协作者(选择应用->设置项目成员),实现多人共同使用一个云服务空间。(需 HBuilderX 2.5.9+)需要注意的是目前协作者不可通过web控制台访问服务空间。

3

云函数的创建、编写、运行、调试

新建云函数

创建后会以云函数名称为名生成一个特殊目录,该目录下自动生成index.js,是该云函数的入口文件,不可改名。如果该云函数还需要引入其他js,可在index.js入口文件中引用。

注意

不同项目使用同一个服务空间时,不可使用同名云函数,可以在uniCloud的web控制台手动删除重名云函数释放函数名。

在HBuilderX创建云函数时,如果新云函数与服务器上已存在同名云函数,会用新函数覆盖。

单个云函数大小限制为10M(包含node_modules)

编写云函数

云函数的语法,是在普通的Node.js基础上补充了uniCloud的专用API。可参考API开发文档编写,也可以直接新建项目时选择hello uniCloud模板体验。

HBuilderX为uniCloud开发提供了良好的语法提示和转到定义支持,对于代码中的API,选中并按下F1,也可以直接查看相应的文档。

如下为一个云函数示例

'use strict';

const db = uniCloud.database()

exports.main = async (event, context) => {

    //event为客户端上传的参数

    const collection = db.collection('unicloud-test') // 获取表'unicloud-test'的集合对象

    const res = await collection.limit(10).get() // 获取表中的10条数据,结果为json格式

    return res // 返回json给客户端

};

运行和调试云函数

编写云函数后,在项目管理器里右键点击该云函数的目录,在弹出菜单中可选择“本地运行云函数”、“上传部署云函数”、“上传并运行云函数”。

本地运行云函数:即在HBuilderX自带的node环境中运行选中的云函数。云函数连接的数据库和云存储,仍然在云端。(从HBuilderX 2.8.1起支持)

上传部署云函数:将云函数部署到uniCloud服务空间,不会运行。(快捷键Ctrl+u)

上传并运行云函数会:先上传云函数,并在云端立即执行该云函数。在部署后同时运行,并打印日志出来。有延时,调试时不如本地运行云函数快捷。

在云函数编辑器里,按Ctrl+r运行快捷键(或点工具栏的运行),可看到运行云函数的若干菜单。Ctrl+r然后回车或选0,即可高效的在控制台看到运行结果和日志输出。如下图所示:

云函数目前无法断点debug,只能打印console.log看日志。

4

小程序中使用uniCloud的白名单配置

各家小程序平台,均要求在小程序管理后台配置小程序应用的联网服务器域名,否则无法联网。

使用uniCloud后,开发者将不再需要自己购买、备案域名,直接将uniCloud的域名填写在小程序管理后台即可。

例如选择的是阿里云服务商,在request合法域名处填写:域名即可。

具体步骤:

1、微信公众平台,登陆的时候,填写注册小程序时,所用的邮箱和密码

2、开发-》开发管理-》服务器域名,按照下图中标注的进行修改即可。

技术选型后,确定了采用的方案:uni-app+uniCloud云开发。由于是第一次使用,需要投入一定的学习时间。这就是全栈开发者的“命”,好在每一次的技术更新和迭代后,都是越来越降低开发难度的。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

触发修改文章时间【fastadmincms开发记录】|fastadmincms二次开发,触发,修改,文章,时间,fastadmin,ms,开发,记录
触发修改文章时间【fastadmincms开发记录】
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】|fastadmincms二次开发,在tp5中,过滤,输入,的零,宽度,字符,fastadmin,ms,开发,记录
在tp5中过滤输入的零宽度字符【fastadmincms开发记录】
处理tag标签中的0宽空格【fastadmincms开发记录】|fastadmincms二次开发,处理,tag,标签,中的,0宽,空格,fastadmin,ms,开发,记录
处理tag标签中的0宽空格【fastadmincms开发记录】
添加专题时tags标签id出错【fastadmincms开发记录】|fastadmincms二次开发,添加,专题,时tags,标签,id,出错,fastadmin,ms,开发,记录
添加专题时tags标签id出错【fastadmincms开发记录】
20230518----模板 广告【fastadmincms开发记录】|fastadmincms二次开发,20230518,模板,广告,fastadmin,ms,开发,记录
20230518----模板 广告【fastadmincms开发记录】
cms添加视频模型【fastadmincms开发记录】|fastadmincms二次开发,ms,添加,视频,模型,fastadmin,开发,记录
cms添加视频模型【fastadmincms开发记录】
新增单篇收费复制功能【fastadmincms开发记录】|fastadmincms二次开发,新增,单篇,收费,复制,功能,fastadmin,ms,开发,记录
新增单篇收费复制功能【fastadmincms开发记录】
添加开会员折扣功能【fastadmincms开发记录】|fastadmincms二次开发,添加,开会,折扣,功能,fastadmin,ms,开发,记录
添加开会员折扣功能【fastadmincms开发记录】

历史上的今天:05月02日

热门专题

云南网站建设|云南网站制作,网站建设,云南网站开发,云南网站设计,云南网页设计,云南网站建设公司,云南网站建设
云南网站建设
弥勒综合高中|弥勒综合高中
弥勒综合高中
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
小程序开发|微信小程序,小程序开发,小程序,小程序制作,微信小程序开发,小程序公司,小程序开发公司,分销,三级分销系统,分销系统
小程序开发
安徽开放大学|安徽开放大学报名,安徽开放大学报考,安徽开放大学,什么是安徽开放大学,安徽开放大学学历,安徽开放大学学费,安徽开放大学报名条件,安徽开放大学报名时间,安徽开放大学学历,安徽开放大学专业
安徽开放大学
综合高中|云南综合高中,昆明综合高中,综合高中能考本一吗,综合高中和普通高中的区别,综合高中是什么意思,综合高中能参加全国统一高考吗,综合高中可以考哪些大学,综合高中的学籍是什么
综合高中
大理科技管理学校|大理科技管理学校,大理科技,大理科技中等职业技术学校,大理科技管理中等职业技术学校,大理科技学校
大理科技管理学校
云南巨榕教育投资集团有限公司|云南巨榕教育投资集团有限公司,巨榕教育集团,巨榕教育
云南巨榕教育投资集团有限公司

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部