uniCloud

UniCloud
1.进入官网选择uniCloud并注册(建议使用HBuilder 账号密码登录 )
2.创建一个服务空间
3.创建一个新的项目
在这里插入图片描述

4.创建云开发环境

右键项目创建并关联云服务空间
然后在cloudfunctions文件夹上右键创建云函数test

5.本地调试云函数test

点击右键-->选择本地运行云函数-->控制台会输出结果

6.上传云函数test

点击右键上传部署

7.设置云函数请求路径URL地址

(1)点击test云函数查看详情
(2)云函数URL不可用需要设置云函数域名绑定
a.点击函数列表
b.进入云函数域名绑定
c.启用域名
d.复制域名
(3)再次查看test云函数详情信息就可以编辑云函数URL了(以/http开头)
a.点击编辑URL可以设置自己想要的URL云函数请求路径
b.设置完毕保存后复制路径,就可以在项目中请求到云函数了

8.调用自己的接口

在一个页面的onLoad生命周期里写入调用的方法

 方法一:  uniCloud.callFunction({
       name:"test",   //云函数的名称
       success:(e)=>{   //云函数调用成功的返回结果,在e.result属性上获得返回值
           console.log(e);
       }
   })
由于这种请求方式不需要URL,黑客想攻击都找不到url入口,更安全;其次由于不需要URL,也就不需要域名,只做APP或小程序就不用购买和备案域名了
  1. 云函数URL化,通过uni.request()来获得数据,该方法不推荐使用
方法二:uni.request({
			url:"https://13596766-970d-43e0-9cf4-b2ab2374bc33.bspapp.com/http/test",
			success() {
			}
		})

9.创建云数据库

a.点击新建—>填写数据库名称—>创建—>手动添加JSON格式的数据

例如:
[          
	{
        "name":"张三",
        "phone":"1800000001"
    },
    {
        "name":"李四",
        "phone":"1800000002"
    },
    {
        "name":"王五",
        "phone":"1800000003"
    }
]

b.点击数据表的表结构,更改数据表的操作权限,将false全部更改为true
在这里插入图片描述

10.在项目中请求数据表中的数据

a.首先右键database,下载所有DB Schema及扩展校验数据,将其引入到本地项目中
b.请求数据表中的数据
在项目中新建一个list页面,在template中添加(快捷键:udb):

<unicloud-db v-slot:default="{data, loading, error, options}" collection="users">
//collection为引用的数据表表名
  <view v-if="error">{{error.message}}</view>
  <view v-else>
  	{{data}}    //datat即为请求到的数据
  </view>
</unicloud-db>

此时在请求到data的view内即可使用这些数据:
在这里插入图片描述

uni-ui增删改查

在DCloud的插件市场中搜索uni-ui,向项目中引入UI 组件库

<unicloud-db ref="udb" v-slot:default="{data, loading, error, options}" collection="users">
			<view v-if="error">{{error.message}}</view>
			<view v-else>{{data}}
				<uni-list>
			<uni-list-item v-for="item in data" :key="item._id" :title="item.name" :note="item.phone" link @longpress.native="rmItem(item._id)"></uni-list-item>
				</uni-list>
			</view>
</unicloud-db>

删除数据

添加一个长按时间函数

rmItem(id){
    this.$refs.udb.remove(id);//在udb中需要添加ref属性:ref='udb'
}

若删除失败,将数据表users.schema.json中的删除权限改为true;

添加数据

a.首先将数据表users.schema.json添加权限开通并上传
b.创建一个add添加页面

<template>
	<view>
		<uni-easyinput  v-model="item.name" placeholder="姓名" />
		<uni-easyinput  v-model="item.phone" placeholder="电话" />
		<button type="default" @click="submit"> 提交</button>
	</view>
</template>

在submit()方法中用cdb获得数据库,并使用api来添加数据

data(){
    return {
        item:{
            "name":"",
            "phone":""
        }
    }
},
methods:{
    submit(){
  		  //获取数据库并添加数据
        const db = uniCloud.database();
        db.collection('users').add(this.item).then(e=>{
            console.log(e);
        })
    }
}

此时会发生错误:
在这里插入图片描述
是因为在users.schema.json中没有“name”,“phone”的属性
需要在下载的database的users.schema.json中添加“name”,“phone”属性即可:
在这里插入图片描述
成功后刷新云服务空间的users数据表就可以看到新添加的数据

更新数据

(1)与添加数据的过程类似,创建一个update的页面

html:
		<uni-easyinput  v-model="item.name" placeholder="姓名" />
		<uni-easyinput  v-model="item.phone" placeholder="电话" />
JS--data:
				item:{
					"_id":"",
					"name":"",
					"phone":""
				}

(2)在list页面中的按钮中添加点击跳转的事件函数:

<uni-list-item  @click.native="updataFn(item)">    </uni-list-item>

在methods中添加:
updataFn(item){
    uni.navigateTo({
         url: '../update/update?item='+JSON.stringify(item)
        //携带list页面的item数据跳转至update页面
    })
}

(3)在update页面中添加

		onLoad(ev){
		    this.item = JSON.parse(ev.item);
		},

11.schema2code

这是uniCloud针对数据库增删改查的代码生成系统
(1)新建数据库:
在这里插入图片描述
(2)下载schema:

  • 先将权限全部开启
    在这里插入图片描述
  • 然后点击schema2code导入到项目中
  • 更新DB database的schema以及扩展校验函数
  • 显示它生成的页面代码(pages)和验证规则(js_sdk中的validator)
    (3)schema里面的作用
  • bsonType属性:数据的类型,固定为object
  • permission属性:数据增删改查的权限
  • required属性:必填项字段
  • properties属性:字段级配置,用来描述每个字段,每个字段依然是个属性
  • bsonType属性:数据类型
  • title属性:标题,对应页面前面的标题
  • description属性:描述,对应页面的placeholder
  • order属性:排序,从小到大排列
  • trim属性:去空格
  • defaultValue属性:默认值
  • enum属性:枚举每项,描述text和值value,可以将单选改为多选;
  • componentForEdit属性:组件设置,组件名字name和组件设置props
  • pettern属性:该字段的正则验证
  • format属性:内置验证器
    (4)在通讯录中添加民族属性时,可以用enum属性关联民族表(同创建通讯录表一样导入民族表到项目中)
    a.在opendb-contacts的schema中添加一个民族字段就可以关联两个表
"nation_china":{
    "bsonType":"string",
    "title":"民族",
    "enum":{
        "collection":"opendb-nation-china",   //联表的名字
		"field":"name as text,_id as value"  //name当成描述text,_id当成值value
    },
    "foreignKey":"opendb-nation-china._id" ,  //联表查询的属性
      "componentForEdit":{
    "name":"uni-data-picker"   //使用下拉列表组件来实现民族
}
}

b.更新DB database的schema以及扩展校验函数
c.重新导入opendb-contacts的schema2code到项目中(由于增加了民族的html)
c.刷新页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值