uniapp 如何创建及使用unicloud云开发

什么是unicloud

uniCloud 是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的实现后端服务的云开发平台。不需要服务器的购买配置即可快速创建一个完整的后端服务。

unicloud优点

用JavaScript开发前后台整体业务
非h5项目免域名使用服务器
不需要前后端分离开发

创建unicloud

  1. 创建方式一:已有项目,项目右键 > 创建unicloud云开发环境 >选择阿里云在这里插入图片描述

  2. 创建方式二:创建项目时勾选
    在这里插入图片描述

  3. 项目右键点击关联云服务
    在这里插入图片描述
    没有创建云服务项目需要点击 新建
    在这里插入图片描述
    新建之后点击关联成功后 旁边就会显示如下:【阿里云: xxx服务空间名】 而不是显示未关联
    在这里插入图片描述

创建云函数

cloudfunctions右键 > 新建云函数 > 函数名test-1(名字自定义 我这里是test-1)
在这里插入图片描述
函数名test-1,生成云函数模板index.js 并上传部署到 云函数/云对象列表
修改index.js 文件之后记得右键点击上传部署
在这里插入图片描述

云函数调用

云函数:

// test-1 index.js
'use strict';
exports.main = async (event, context) => {
	//event为客户端上传的参数
	const { username, age } = event
	console.log('event : ', event)
	//返回数据给客户端
	return {
			msg: `请求成功, 传递的用户名:${username}`,
			code: 0
	}
};

  1. callback方式调用
// index.vue 
getData() {
	uniCloud.callFunction({
		name: 'test-1',
		data: {
			username: 'kuku',
			age: 20
		},
		success(res) { //  成功
			console.log(res, '返回的结果')
		},
		fail() {
			// 失败
		},
		complete(){  // 完成 不管成功还是失败  }
	})
	}
}
			
  1. promise方式调用
	// index.vue 
	async getProData() {
		const res = await uniCloud.callFunction({
			name: 'test-1',
			data: {
				username: 'kuku',
				age: 29
			}
		})
		console.log(res)
	}

创建云数据库

  1. 手动创建数据表
    在这里插入图片描述
  2. 配置db_init.json 创建多个表
    在这里插入图片描述
    在json里面以键值对的形式创建:(会生成userlist、pagelist 两个表, 右键点击初始化云数据库即可)
{ 
	"userlist": { },
	"pagelist": { }
}

云函数实现云数据库增删改查

1. 获取数据库引用


const db = uniCloud.database()

2. 获取数据库集合引用

没有手动添加user表的话会自动添加


const collection = db.collection('user')

3. 添加数据操作


const res = await collection.add({ name, age })



'use strict';
//获取数据库引用
const db = uniCloud.database();
exports.main = async (event, context) => {
	//event为客户端上传的参数
	console.log('event : ', event)
	
	// 获取某一个数据库的集合
	const collection = db.collection('user')
	
	// 获取前端传递的参数
	const  { name, age  } = event;
	
	// 添加数据操作
	const res = await collection.add({ name, age })
	
	//返回数据给客户端
	return {
		code: 0,
		msg: res
	}
};

4. 得到user数据列表


'use strict';
const db = uniCloud.database()
console.log(db, 'db')
exports.main = async (event, context) => {
	const collection = db.collection('user')
	console.log(collection, 'collection')
	const res = await collection.get()
	//返回数据给客户端
	return {
		code: 0,
		list: res.data
	}
};


	

async onLoad() {
	const res = await uniCloud.callFunction({
		name: 'get_user'
	})
	this.userlist = res.result.list
},
		
			

5. 删除数据

const res = await collection.doc(‘60ee51103b7d3500014124c1’).remove()

'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {

	const { id } = event
	
	const collection = db.collection('user')
	
	const res = await collection.doc(id).remove()
	
	//返回数据给客户端
	return {
		code: 0,
		msg: res
	}
};



async del(id) {
	const res = await uniCloud.callFunction({
		name: 'del_user',
		data: { id }
	})
	console.log(res, '删除成功')
}

6. 更新数据

const res = await collection.doc(‘60ee52a1827eca0001e56bc4’).update({
name:“要修改的数据”
})

const res = await collection.doc(‘60ee52a1827eca0001e56bc4’).set({ // 如果获取不到内容,从新进行插入记录的操作
name:“要修改的数据”,
})

'use strict';
const db = uniCloud.database()
exports.main = async (event, context) => {
	//event为客户端上传的参数
	console.log('event : ', event)
	
	const collenction = db.collection('user')
	
	const { id, name } = event
	
	const res = await collenction.doc(id).update({name: name})
	
	//返回数据给客户端
	return event
};



async update(id, name) {
	//修改数据
	const res = await uniCloud.callFunction({
		name: 'update_user',
		data: { id, name }
	})
	
	//刷新修改之后的数据
	const reflsh = await uniCloud.callFunction({
		name: 'get_user'
	})
	this.userlist = reflsh.result.list 
	
}
			

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 14:26:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 14:26:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 14:26:02       82 阅读
  4. Python语言-面向对象

    2024-03-31 14:26:02       91 阅读

热门阅读

  1. Vue的侦听方法和生命周期

    2024-03-31 14:26:02       41 阅读
  2. Viso的使用

    2024-03-31 14:26:02       57 阅读
  3. LeetCode 84. 柱状图中最大的矩形

    2024-03-31 14:26:02       34 阅读
  4. 【BlossomRPC】一个完整的含源码和文档的RPC项目

    2024-03-31 14:26:02       35 阅读
  5. 补关于zip安装mysql-8.0版本问题

    2024-03-31 14:26:02       39 阅读
  6. cephadm安装reef版本ceph集群

    2024-03-31 14:26:02       39 阅读
  7. PyTorch-----torch.flatten()函数

    2024-03-31 14:26:02       35 阅读
  8. js关于字符串的方法

    2024-03-31 14:26:02       40 阅读
  9. 2024年保安员职业资格考试真题题库

    2024-03-31 14:26:02       38 阅读
  10. 5.FileChannel

    2024-03-31 14:26:02       28 阅读