2.云对象importObject的创建于使用

128 阅读2分钟

创建一个云对象 cloudObj1

image.png

云对象跟云函数一样,也是通过export向外暴露一个对象

_before是运行云对象的预处理,不用删 下面的可以全部删掉

// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129
module.exports = {
	_before: function () { // 通用预处理器

	},
	/**
	 * method1方法描述
	 * @param {string} param1 参数1描述
	 * @returns {object} 返回值描述
	 */
	/* 
	method1(param1) {
		// 参数校验,如无参数则不需要
		if (!param1) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: '参数不能为空'
			}
		}
		// 业务逻辑
		
		// 返回结果
		return {
			param1 //请根据实际需要返回值
		}
	}
	*/
}

保留这些就是最基础的云对象

module.exports = {
	_before: function () { // 通用预处理器

	},
	
}

写一个获取数据的方法,并在前端调用

// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129

const db=uniCloud.database()
module.exports = {
	_before: function () { // 通用预处理器

	},
	async get(){
    return await db.collection("article").get()
  }
}

云函数需要引入使用,引入的名字就是自定义的那个对象名 引过来之后,就是云对象的大括号里面的内容,在云对象里面通过export向外暴露的部分

<template>
	<view class="content">
		<image class="logo" src="/static/logo.png"></image>
		<view class="text-area">
			<text class="title">{{title}}</text>
		</view>
	</view>
</template>

<script>
  // 引入云对象
  const cloudObj1=uniCloud.importObject("cloudObj1")
	export default {
		data() {
			return {
				title: 'Hello'
			}
		},
		onLoad() {
      this.getData();
		},
		methods: {
      getData(){
        // cloudObj1就是一个对象,里面有方法
        cloudObj1.get().then(res=>{
          console.log(res);
        })
        return;
        uniCloud.callFunction({
          name:"cloudFun1",
          data:{
            num:2
          }
        }).then(res=>{
          console.log(res);
        })
      }
		}
	}
</script>

<style>

</style>

image.png

云对象传参

通过云对象中的函数接收参数

在前端get中传递一个实参,在云对象中通过函数接收参数

methods: {
      getData(){
        // cloudObj1就是一个对象,里面有方法
        cloudObj1.get(3).then(res=>{
          console.log(res);
})

在get方法中接收参数

const db=uniCloud.database()
module.exports = {
	_before: function () { // 通用预处理器

	},
	async get(num){
    return await db.collection("article").limit(num).get()
  }
}

image.png

写一个添加数据的方法

// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129

const db=uniCloud.database()
module.exports = {
	_before: function () { // 通用预处理器

	},
  // 获取数据方法
	async get(num){
    return await db.collection("article").limit(num).get()
  }
  // 新增数据方法
  // 在对象在写一个箭头函数,赋值给一个变量名
  add: async ()=>{
    await db.collection("article").add({
      title:"测试标题",
      content:"测试内容"
    })
  }
}

现在因为引入进来了,使用方法还是对象名.方法名

onLoad() {
      this.getData();
      cloudObj1.add().then(res=>{
        console.log(res);
      })
},

刷新页面后,数据就被添加到数据库中了 image.png