uniClound云开发创建流程
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云开发创建流程相关推荐
- 微信小程序开通腾讯云开发实践流程附详细图解
微信小程序开发交流qq群 173683895 云开发流程: 1.关联账户 关联腾讯云账号与微信公众号平台账号.前往关联账号时,请选择微信公众号.错误关联账号请在腾讯云账号中心重新绑定. 已关联账号 ...
- 基于云开发创建(小程序云商城,基本页面的创建及动态代码的编写)
CSDN话题挑战赛第2期 参赛话题:万家争鸣的云计算修罗场 在这个专属于"云"的时代,各位云端弄潮儿们,请分享出你的云计算学习历程吧! 你可以从以下几个方面着手(不强制),或者根据 ...
- 小程序云开发——创建第一个商品数据
创建第一个商品数据 在云开发里的数据库 点击集合名称旁的加号 输入你想要的集合名称,点击确定 在你创建的集合,点击添加记录 输入字段和值 我输入的是name字段,命名为棒棒糖 点击加号 增加棒棒糖的价 ...
- 泛微E9 OA 二次开发创建流程
泛微E9OA二次开发通过Java代码发起流程,可以通过以下方式进行实现. public String createWorkFlow(String userId) {/****************流 ...
- 小程序-云开发部署流程(步骤二)
在完成上个流程"小程序-(报错)请使用 2.2.3 或以上的基础库以使用云能力(步骤一)"后,就需要开始以下的流程了: 1.此时页面正常显示,未有明显报错,如图: 2.明显的流程一 ...
- 微信小程序---快速上手云开发
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 【微信小程序】云开发基础设置
第一步 设置名称,修改路径,填写id,勾选 小程序-云开发,全部填写之后点击确定 第二步 进入首页之后可以看到控制台有错误,不用管它,点击左上角的云开发 进入之后点确定 点击完确定弹出页面,填写环境的 ...
- uni-app云开发基础保姆级教程
什么是uni-app云开发 uni-app云开发,也叫uniCloud,uniCloud是由Dcloud联合阿里云,腾讯云推出的,基于serverless的,跨全端的.用js开发服务端的云产品 uni ...
- 微信小程序云开发教程-微信小程序框架的介绍
同学们大家好,我是小伊同学,今天我们来学习微信小程序框架. 微信小程序实质上是一款基于web技术的应用程序,他和我们平常所接触到的前端网页是大同小异的.相同点在于他们使用的开发语言,代码结构以及代码的 ...
最新文章
- Linux下分割与合并文件的方法
- JavaScript中正则表达式学习(一)
- [To be translated] Nova:libvirt image 的生命周期
- mysql等待事件类型_Oracle中常见的33个等待事件小结
- 安装apache+gd2(jpeg,png等)+mysql-client+php脚本
- window.setTimeout() 和window.setInterval() 使用说明
- java的语法树,JAVA语言语法树.doc
- 将rm -f or -rf 删除命令改为放入回收站,并可通过命令将其撤回
- 吐血解决python中文写入文件问题
- 设计模式(7) 续原型模式
- bfc -- 块级格式化上下文
- Ubuntu 64 测试ODB
- 猜词游戏(类似于Hang子手)
- 一般网站需要多少流量多大空间才够用
- 守护线程和用户线程的真正区别(实例讲解)
- 宝华计算机维修,唐山市路北区宝华计算机维修服务
- CF545C题解【贪心】
- 最新C语言零基础入门(带课件+源码)
- 快速应用计算机制作pop,【爆炸贴图片手绘字体】爆炸贴手绘技巧
- 刘谦2010春晚魔术大揭秘
热门文章
- 刚刚Teradata的高管们说,“TA是唯一”……
- 使用3D建模软件的6个行业,创意与设计=高收入
- error: command ‘arm-linux-gnueabihf-gcc‘ failed with exit status 1, 树莓派安装 paramiko
- 本地引入FastJson
- 使用rdp后parsec报错14003
- 10分钟用python实现给定电影英文名,在猫眼上爬到中文名和票房
- 对接支付宝人脸识别和获取用户信息接口
- discriminative training鉴别性训练
- 诺基亚确实可以当榔头用,验证了
- 斯蒂夫乔布斯传札记:第二波