我的编程空间,编程开发者的网络收藏夹
学习永远不晚

uniCloud是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

uniCloud是什么

这篇文章主要介绍“uniCloud是什么”,在日常操作中,相信很多人在uniCloud是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”uniCloud是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

什么是Serverless

在介绍什么是Serverless的时候,希望通过回答一些问题帮助大家了解什么是Serverless。一个最好的问题就是——Serverless是不是就是FaaS?

  • “"功能即服务"(或称为 FaaS)是一种在无状态容器中运行的事件驱动型计算执行模型,这些功能将利用服务来管理服务器端逻辑和状态

下面是维基百科对“Serverless”的中文和英文的解释:

uniCloud是什么

uniCloud是什么

中文解释为Serverless就是FaaS;英文解释就比较丰富了,它把Serverless分成Runtime和Databases,FaaS相当于是Runtime类别的产品,所以这方面的误解还是挺多的。

现在市面上的一些Serverless服务,比如腾讯云和阿里云:

腾讯云 Serverless服务:

uniCloud是什么

阿里云Serverless服务:

uniCloud是什么

到这里就可以发现FaaS和Serverless有些区别了,整体来看FaaS服务,是Serverless计算服务的一部分。

目前来讲,提供无需关注底层基础设施的服务可以称为Serverless,那么无需关注底层基础设施可以怎么理解呢?

首先是我们不去维护这下面的底层基础设施;其次是不关心它的资源的扩展情况,就像DB,我们知道它是可能运行在K8S集群上,也知道它有内存有CPU有磁盘,但我们并不需要关心这些资源的情况。

什么是uniCloud

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

到底是怎么一回事?听我给你简单说一下

对架构演进有了解的同学都知道,很早之前一般是单体架构,前后端代码写在一起,一般一个人单甩一个项目。后来随着技术的演进,工种演化为前端开发人员和后端开发人员,前后端分离架构应运而生。

近几年,随着云计算的流行,国外有人就提出了Serverless思想。既然后端这么重,那我直接不要你了,我js编程直接搞定。前端收集到的数据不用往后端传,直接js操作入库,前端要展示数据,直接js查询数据库获取数据。听起来都很牛逼!

uniCloud就是这样的一个平台,如何实现我们上面所说的操作,就需要谈一谈uniCloud的基本概念。

“更多介绍,可以看这里什么是uniCloud - uni-app官网 (dcloud.io)

uniCloud的基本概念

服务空间

一个服务空间对应一整套独立的云开发资源,包括数据库、存储空间、云函数等资源。服务空间之间彼此隔离。

每个服务空间都有一个全局唯一的space ID,至于在云服务器怎么隔离的,我们就不需要关注了

目前阿里云和腾讯云都是免费开通,腾讯云有些功能已经收费,不用多想,未来一定收费。

uniCloud是什么

云数据

uniCloud同时支持阿里云和腾讯云,它们的数据库大体相同,有细微差异。阿里云的数据库是mongoDB4.0,腾讯云则使用自研的文档型数据库(兼容mongoDB  4.0版本)。uniCloud基本抹平了不同云厂商的差异,有差异的部分会在文档中单独标注。所以熟悉mongoDB的同学就很容易上手了!

那么如何操作数据库?

云函数操作数据库是较为传统的开发方式,使用nodejs写云函数、使用传统的MongoDB的API操作云数据库。

客户端访问云数据库,称为clientDB。这种开发方式可大幅提升开发效率,避免开发者开发服务器代码,并且支持更易用的jql语法操作数据库,是更为推荐的开发方式。clientDB有单独一套权限和字段值控制系统,无需单独数据库安全。其实就是把MongoDB的API封装了一层,待会给大家演示

uniCloud是什么

云函数

云函数是运行在云端的 JavaScript 代码,和普通的Node.js开发一样,熟悉Node.js的开发者可以直接上手。

就是这一部分直接代替了后端,让不熟悉后端的前端人员直接可以上手,降低了学习了成本。那后端人员干嘛去?如果真有那么一天,可能会去搞云计算开发吧,只是对业务的关注度会降低吧!

uniCloud的开发模式

通过上面的介绍,我们大致了解了什么是uniCloud,接下来我们通过一些代码片段来直观的看一看在前端如何直接和数据库交互。

//首先我们要获取db对象,用它来操作云数据库 const db = uniCloud.database();

新增数据

//数据对象 formData: {     "colony_house_name": "",         "colony_house_area": "",             "describe": "" }  db.collection('table_name').add(formdata).then((res) => {     uni.showToast({         icon: 'none',         title: '新增成功'     })     // 处理数据      }).catch((err) => {     uni.showModal({         content: err.message || '请求服务失败',         showCancel: false     }) }).finally(() => {     uni.hideLoading() })

修改数据

db.collection(dbCollectionName).doc("5f79fdb337d16d0001899566").update(formdata).then((res) => {   uni.showToast({    icon: 'none',    title: '修改成功'   })   // 处理数据   }).catch((err) => {   uni.showModal({    content: err.message || '请求服务失败',    showCancel: false   })  }).finally(() => {   uni.hideLoading()  })

删除数据

const db = uniCloud.database(); db.collection("table1").doc("5f79fdb337d16d0001899566").remove()

查询数据

单表查询

db.collection('list')   .where('name == "hello-uni-app"')   .get()   .then((res)=>{     // res 为数据库查询结果   }).catch((err)=>{     // err.message 错误信息     // err.code 错误码   })

联表查询

table_name_a是主表,table_name_b是副表,关联查询时候,需要将主表放到第一位。需要在主表的主键字段增加映射关系,就是下面的foreignKey,表示这个字段映射到table_name_b表的_id字段

  1. "plant_breed_classify_code": { 

  2.    "bsonType": "string", 

  3.    "description": "养殖类型编码", 

  4.    "trim": "both", 

  5.    "foreignKey": "table_name_b._id" // 使用foreignKey表示,此字段关联s-plant-breed-classify表的_id。 

  6.   }, 


db.collection('table_name_a,table_name_b')  .where({   create_by:userId  })  .field('plant_breed_classify_code{classify_name}')  .groupBy('plant_breed_classify_code')  .groupField('count(*) as total')  .get()  .then((res) => {      const data = res.result.data;      if (data) {          //处理数据      }  }).catch((err) => {      uni.showModal({          content: err.message || '请求服务失败',          showCancel: false      })  }).finally(() => {      uni.hideLoading()  })

 uniCloud的优缺点

结合我最近使用的情况,来谈谈我认为的uniCloud的优缺点

优点

  • 简化了传统开发模式,提高了轻应用的开发效率

  • 一定程度上降低了企业的人工成本,后端可以少招人....

  • 降低了前端人员学习压力,实现某一部分的全栈梦

  • 由于目前serverless处于免费阶段,可以为企业剩下服务器和运维方面的成本

缺点

  • 官方文档太乱,案例太少,不利于快速上手

  • 多表关联查询场景下不理想,尤其你正在开发一个统计页面

  • 云数据目前不支持删除数据,需要api调用才可以

  • 假如你习惯了关系型数据库,习惯了navicat,你会发现在这里搞数据会非常别扭

  • 没有类似MySQL的分析器,不太容易发现你的查询语句哪里出错

到此,关于“uniCloud是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

uniCloud是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

uniCloud-db组件与JQL语法的转换的方法是什么

这篇“uniCloud-db组件与JQL语法的转换的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“uniCloud
2023-07-05

什么是 ipsec?SDN 是什么?

IPsec是一种协议套件,用于确保IP网络通信的安全,提供保密性、完整性和身份验证。SDN是一种网络架构,将网络控制平面与数据平面分离,集中控制和可编程性。两者的结合可增强网络安全性和可编程性:SDN可动态配置IPsec策略,IPsec增强SDN网络安全性,SDN简化IPsec管理。
什么是 ipsec?SDN 是什么?
2024-04-02

Windows Vista是什么?什么是Windows Vista

我身边很多朋友对Windows Vista是什么一点都不知道,经常来问我,所以今天我就像大家详细介绍Windows Vista这个操作系统,如有不足,还请大家见谅,好了,进入正题:Windows Vista是微软公司的一款视窗操作系统。微软
2023-06-05

Spring之什么是ObjectFactory?什么是ObjectProvider?

这篇文章主要介绍了Spring之什么是ObjectFactory?什么是ObjectProvider?具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-01

window.setinterval是什么 其作用是什么

window.setInterval是一个JavaScript方法,它允许您周期性地执行指定的函数或代码块。该方法以指定的时间间隔(以毫秒为单位)触发指定的函数。window.setInterval的语法如下:javascriptsetIn
2023-07-12

colspan_colspan是什么意思?作用是什么

colspan是HTML中的一个属性,用于指定一个单元格横跨的列数。作用是将一个单元格合并为多个列,使得该单元格占据更大的水平空间。例如,如果一个表格中有两列,而某个单元格需要占据这两列的水平空间,可以使用colspan属性将该单元格的co
2023-08-22

什么是DHCP?什么是DHCP服务器

DHCP是Dynamic Host Configuration Protocol(动态主机配置协议)的缩写,它是一种网络协议,常用于局域网(LAN)中自动分配IP地址和其他网络配置信息给客户端设备。DHCP服务器是运行DHCP协议的服务器,
2023-09-05

c#什么是委托什么是事件

委托是一种指向方法的引用类型,用于实现松散耦合,而事件是一种特殊委托,用于事件处理。委托可将调用方法的职责转移到接收方,提高代码可重用性。事件允许对象向订阅者通知事件发生,订阅者可响应事件。使用委托需要定义一个与所调方法签名相同的委托类型,
c#什么是委托什么是事件
2024-04-04

c++中什么是类,什么是对象

c++kquote>类在 c++ 中代表对象集合的模板,定义了对象的属性(数据成员)和行为(成员函数)。对象是类的实例,拥有类中的所有数据成员和成员函数,由类创建,并使用与类相同的数据类型。类和对象在 C++ 中的作用什么是类?类是
c++中什么是类,什么是对象
2024-05-08

java中什么是类,什么是对象

类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所
java中什么是类,什么是对象
2020-06-27

DHCP是什么?工作原理是什么?

  在设置无线AP或无线路由器过程中,用户会遇到很多参数,如果只是完成一般的设置,满足一般的上网需求的话,有以一些参数是不需要深入了解的。但是在一些比较复杂的网络环境就需要我们对一些参数作相应的配置,今天我们来看一下无线路由器的参数之一DHCP。  1、DHCP的作用  DHCP(Dynamic Host Confif
DHCP是什么?工作原理是什么?
2024-04-18

什么是软考?软考全称是什么

  什么是软考?对于软考很多人可能并不了解,初次听到甚至可能会觉得很好奇。其实软考只是一种考试的简称,那么软考全称是什么呢?  什么是软考?  软考全称是计算机技术与软件专业技术资格(水平)考试(以下简称计算机资格考试),是由国家人力资源和社会保障部(原人事部,以下简称人社部)、工业和信息化部(原信息产业部,以下简称工
什么是软考?软考全称是什么
2024-04-18

什么是软考软考全称是什么

  软考也叫软件水平考试,全称计算机技术与软件专业技术资格(水平)考试,是由国家人力资源和社会保障部(原人事部)、工业和信息化部(原信息产业部)领导的国家级考试。  软考全称计算机技术与软件专业技术资格(水平)考试,是由国家人力资源和社会保障部(原人事部)、工业和信息化部(原信息产业部)领导的国家级考试,其目的是,科学
什么是软考软考全称是什么
2024-04-18

软考是什么考试?全称是什么?

  软考也叫软件水平考试,全称计算机技术与软件专业技术资格(水平)考试,是由国家人力资源和社会保障部(原人事部)、工业和信息化部(原信息产业部)领导的国家级考试,其目的是,科学、公正地对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。  根据原人事部、原信息产业部颁布的《关于印发〈计算机技
软考是什么考试?全称是什么?
2024-04-19

css是什么?有什么用?

CSS是什么东西?CSS,即层叠样式表(Cascading Style Sheets),是一种用于网页设计的样式语言。通过CSS,你可以改变HTML页面上各个元素的外观、布局和行为。CSS最初是由赛迪公司(斯佩克特公司)的开发者创建的,并于1996年成为一项业界标准。随着互联网的发展,在HTML语言出现之后,CSS已经成为了使用最广泛的网页设计工具之一。让我们来看一下CSS有哪
2023-05-14
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录