uniClound是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。云服务创建项目,使用熟悉的js,轻松搞定前后台整体业务,使前端开发离全栈开发又进一步,尤其是一键生成代码的功能,简直不要太巴适。

web控制台地址:uniCloud控制台

一、新建项目

在新建项目之前,首先要把你的HBuilderx升级到最新版本。

初次体验uniCloud推荐阿里云,因为腾讯云的开户流程更复杂

         HBuilderX 会在项目创建后弹出 uniCloud初始化向导,根据向导部署。

二、关联服务空间

一个开发者可以拥有多个服务空间,每个服务空间都是一个独立的serverless云环境,不同服务空间之间的云函数、数据库、存储都是隔离的。

2.1 关联云空间

对项目根目录uniCloud点右键选择关联云服务空间,绑定之前创建的服务空间,或者新建一个服务空间。初次使用都需要新建服务空间。

         学习阶段,推荐使用免费的,只能创建一个云服务空间,时限1年。

2.2 创建云函数

uniCloud项目创建并绑定服务空间后,开发者可以创建云函数(云对象是云函数的一种,云函数可泛指普通云函数和云对象)。在uniCloud/cloudfunctions目录右键创建云函数/云对象。

2.3 云函数编写

创建云函数后,生成一个目录,该目录下自动生成index.js,是该云函数的入口文件,不可改名。如果云函数还需要引入其他js,可在index.js入口文件中引用,同时也在这个文件中编写云函数。

2.4 调用云函数

通过uniCloud.callFunction()调用云函数,以在pages/index/index.vue中调用云函数为例,代码如下:

<template><view class="content"><button @click="call">显示数据库</button></view>
</template><script>export default {data() {return {title: 'Hello'}},onLoad() {},onShow() {if(this.$refs&&this.$refs.udb){this.$refs.udb.refresh();}},methods: {call(){uniCloud.callFunction({name:"testfun",data:{name:"小白",age:18}}).then(res=>{uni.showModal({title:JSON.stringify(res)})}).catch(err=>{console.log(err);})}}}
</script>

2.5 运行

HBuilderX自带一个云函数本地运行环境,运行项目时也默认选择 连接本地云函数。可以在底部控制台中的前端控制台右上角进行切换。可以对testfun云函数点右键上传到uniCloud服务空间,然后在前端控制台右上角切换为 连接云端云函数,那么此时客户端连接的就是真正的现网uniCloud服务器了。

三、云数据库

uniCloud提供了一个 JSON 格式的文档型数据库。顾名思义,数据库中的每条记录都是一个 JSON 格式的文档。一个uniCloud服务空间,有且只有一个数据库;一个数据库可以有多个表;一个表可以有多个记录;一个记录可以有多个字段。

3.1 新建云数据库

3.2 新增数据

点击进入新建的数据库(concat),添加记录->按条输入数据,点击确定,新的数据就会出现在数据库里。

3.3 更改表结构配置

学习使用,把表结构的增删改查的权限都放开。

3.4 前端展示数据库数据

通过unicloud-db将数据库的数据发往前端进行展示。

<template><view class="content"><unicloud-db ref="udb" v-slot:default="{data, loading, error, options}" collection="users"><view v-if="error">{{error.message}}</view><view v-else><uni-list><uni-list-item v-for="item in data" :key="item._id" :title="item.name" :note="item.tel"></uni-list-item></uni-list></view></unicloud-db></view>
</template><script>export default {data() {return {}},methods: {}}
</script>

运行效果如下:

四、数据操作

4.1 增加

在pages中新建一个页面,路径pages/add/add.vue,记得要在page.json中注册。新增数据主要通过db.collection("数据库中的表").add(this.新增的数据)来实现。

<template><view><uni-easyinput  v-model="item.name" placeholder="姓名" /><uni-easyinput  v-model="item.tel" placeholder="电话" /><button @click="addConcat">添加</button></view>
</template><script>export default {data() {return {item:{name:"",tel:""}}},methods: {addConcat(){//数据库var db=uniCloud.database();//获取表db.collection("users").add(this.item).then(res=>{uni.showToast({title:"添加成功"})}).catch(err=>{console.log(err);})}}}
</script>

运行效果如下图:

4.2 删除

数据删除通过数据库中的表.remove(删除的数据)实现,删除数据要有事件触发本案例使用longpress.native,在项目首页中实现删除功能。

<template><view class="content"><unicloud-db ref="udb" v-slot:default="{data, loading, error, options}" collection="users"><view v-if="error">{{error.message}}</view><view v-else><uni-list><uni-list-item @longpress.native="$refs.udb.remove(item._id)" v-for="item in data" :key="item._id" :title="item.name" :note="item.tel"></uni-list-item></uni-list></view></unicloud-db></view>
</template><script>export default {data() {return {title: 'Hello'}},methods: {call(){uniCloud.callFunction({name:"testfun",data:{name:"小白",age:18}}).then(res=>{uni.showModal({title:JSON.stringify(res)})}).catch(err=>{console.log(err);})}}}
</script>

效果图如下:

4.3 修改

对数据库中已存在数据进行修改。首先在pages中新建一个update页面(page.json中注册)。在首页中触发数据修改,在update页面中对数据进行修改确认。

pages/index/index.vue

<template><view class="content"><unicloud-db ref="udb" v-slot:default="{data, loading, error, options}" collection="users"><view v-if="error">{{error.message}}</view><view v-else><uni-list><uni-list-item link :to="'/pages/update/update?item='+JSON.stringify(item)" @longpress.native="$refs.udb.remove(item._id)" v-for="item in data" :key="item._id" :title="item.name" :note="item.tel"></uni-list-item></uni-list></view></unicloud-db></view>
</template><script>export default {data() {return {title: 'Hello'}},onLoad() {},onShow() {//首页数据进行展示时,刷新,重新获取数据库数据if(this.$refs&&this.$refs.udb){this.$refs.udb.refresh();}},methods: {call(){uniCloud.callFunction({name:"testfun",data:{name:"小白",age:18}}).then(res=>{uni.showModal({title:JSON.stringify(res)})}).catch(err=>{console.log(err);})}}}
</script>

pages/update/update.vue

<template><view><uni-easyinput  v-model="item.name" placeholder="姓名" /><uni-easyinput  v-model="item.tel" placeholder="电话" /><button @click="updateConcat">更改</button></view>
</template><script>export default {data() {return {item:{name:"",tel:""}}},onLoad(option) {this.item=JSON.parse(option.item)},methods: {updateConcat(){//获取itemvar item={...this.item};//删除id属性delete item._id;const db=uniCloud.database();db.collection("users").doc(this.item._id)//查询一条数据.update(item).then(res=>{uni.showToast({title:"更新成功"})uni.navigateBack();}).catch(err=>{uni.showModal({content:JSON.stringify(err)})})}}}
</script>

通过以上步骤,你已经创建了一个uniCloud项目,并可以使用数据库数据进行增删改查了,赶紧打开HBuilderx试试吧。

uniClound云开发创建流程相关推荐

  1. 微信小程序开通腾讯云开发实践流程附详细图解

    微信小程序开发交流qq群   173683895 云开发流程: 1.关联账户 关联腾讯云账号与微信公众号平台账号.前往关联账号时,请选择微信公众号.错误关联账号请在腾讯云账号中心重新绑定. 已关联账号 ...

  2. 基于云开发创建(小程序云商城,基本页面的创建及动态代码的编写)

    CSDN话题挑战赛第2期 参赛话题:万家争鸣的云计算修罗场 在这个专属于"云"的时代,各位云端弄潮儿们,请分享出你的云计算学习历程吧! 你可以从以下几个方面着手(不强制),或者根据 ...

  3. 小程序云开发——创建第一个商品数据

    创建第一个商品数据 在云开发里的数据库 点击集合名称旁的加号 输入你想要的集合名称,点击确定 在你创建的集合,点击添加记录 输入字段和值 我输入的是name字段,命名为棒棒糖 点击加号 增加棒棒糖的价 ...

  4. 泛微E9 OA 二次开发创建流程

    泛微E9OA二次开发通过Java代码发起流程,可以通过以下方式进行实现. public String createWorkFlow(String userId) {/****************流 ...

  5. 小程序-云开发部署流程(步骤二)

    在完成上个流程"小程序-(报错)请使用 2.2.3 或以上的基础库以使用云能力(步骤一)"后,就需要开始以下的流程了: 1.此时页面正常显示,未有明显报错,如图: 2.明显的流程一 ...

  6. 微信小程序---快速上手云开发

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  7. 【微信小程序】云开发基础设置

    第一步 设置名称,修改路径,填写id,勾选 小程序-云开发,全部填写之后点击确定 第二步 进入首页之后可以看到控制台有错误,不用管它,点击左上角的云开发 进入之后点确定 点击完确定弹出页面,填写环境的 ...

  8. uni-app云开发基础保姆级教程

    什么是uni-app云开发 uni-app云开发,也叫uniCloud,uniCloud是由Dcloud联合阿里云,腾讯云推出的,基于serverless的,跨全端的.用js开发服务端的云产品 uni ...

  9. 微信小程序云开发教程-微信小程序框架的介绍

    同学们大家好,我是小伊同学,今天我们来学习微信小程序框架. 微信小程序实质上是一款基于web技术的应用程序,他和我们平常所接触到的前端网页是大同小异的.相同点在于他们使用的开发语言,代码结构以及代码的 ...

最新文章

  1. Linux下分割与合并文件的方法
  2. JavaScript中正则表达式学习(一)
  3. [To be translated] Nova:libvirt image 的生命周期
  4. mysql等待事件类型_Oracle中常见的33个等待事件小结
  5. 安装apache+gd2(jpeg,png等)+mysql-client+php脚本
  6. window.setTimeout() 和window.setInterval() 使用说明
  7. java的语法树,JAVA语言语法树.doc
  8. 将rm -f or -rf 删除命令改为放入回收站,并可通过命令将其撤回
  9. 吐血解决python中文写入文件问题
  10. 设计模式(7) 续原型模式
  11. bfc -- 块级格式化上下文
  12. Ubuntu 64 测试ODB
  13. 猜词游戏(类似于Hang子手)
  14. 一般网站需要多少流量多大空间才够用
  15. 守护线程和用户线程的真正区别(实例讲解)
  16. 宝华计算机维修,唐山市路北区宝华计算机维修服务
  17. CF545C题解【贪心】
  18. 最新C语言零基础入门(带课件+源码)
  19. 快速应用计算机制作pop,【爆炸贴图片手绘字体】爆炸贴手绘技巧
  20. 刘谦2010春晚魔术大揭秘

热门文章

  1. 刚刚Teradata的高管们说,“TA是唯一”……
  2. 使用3D建模软件的6个行业,创意与设计=高收入
  3. error: command ‘arm-linux-gnueabihf-gcc‘ failed with exit status 1, 树莓派安装 paramiko
  4. 本地引入FastJson
  5. 使用rdp后parsec报错14003
  6. 10分钟用python实现给定电影英文名,在猫眼上爬到中文名和票房
  7. 对接支付宝人脸识别和获取用户信息接口
  8. discriminative training鉴别性训练
  9. 诺基亚确实可以当榔头用,验证了
  10. 斯蒂夫乔布斯传札记:第二波