uniCloud云函数URL化后的增删改查

uniCloud云函数URL化后的增删改查

先绑定云函数自定义域名
在这里插入图片描述
下图是我已经绑定过了,绑定之前,肯定先要申请域名、再备案、拿到cname值,在相对应服务商进行域名解析:
在这里插入图片描述在这里插入图片描述
上图是点击云函数详情进行了URL的path部分:我的云函数名称为users,对应的名称path部分为 /api/users,path部分可以自己定义按照提示规则。

在这里插入图片描述

在这里插入图片描述
到此一步,证明URL化已经配置好
假设与云函数绑定的URL化地址为:https://${自定义域名}/api/users
作为前端(客户端)怎么去请求呢?
简单例子:

		getUsers() {
				uni.request({
					method: "get",
					url: 'https://自定义域名/api/users',
					success: (res) => {
						console.log(res)
					}
				})
			}

新增:
请求方式为:POST
传递body参数为:name
前端代码如下:

<template>
	<view class="content">
		用户列表
		<div class="user-list" v-for="(item,index) in users" :key="index">
			<div class="name">用户姓名:{{item.name}}</div>
			<div class="option-btn">
				<button type="primary" @click="updateUser(item._id)">编辑</button>
				<button type="warn" @click="deleteUser(item._id)">删除</button>
			</div>

		</div>
		<br />
		<input v-model="name" placeholder="请输入用户姓名" />
		<button type="primary" @click="addUser">添加用户</button>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				title: 'Hello',
				name: '',
				users: []
			}
		},
		onLoad() {

		},
		onShow() {
			this.getUsers()
		},
		methods: {
			// 添加用户
			addUser() {
				if (!this.name) {
					uni.showToast({
						title: '用户姓名不能为空',
						icon: 'none'
					})
					return
				}
				uni.request({
					method: 'post',
					url: 'https://自定义域名/api/users',
					data: {
						name: this.name
					},
					success: (res) => {
						console.log(res)
					}
				})
			},
			getUsers() {
				uni.request({
					method: "get",
					url: 'https://自定义域名/api/users',
					success: (res) => {
						console.log(res)
					}
				})
			}
		}
	}
</script>

<style>
	.user-list {
		display: flex;
		margin: 20rpx;
		align-items: center;
		border-bottom: 1rpx solid #ccc;
	}

	.name {
		flex: 1;
	}

	.option-btn {
		display: flex;
		width: 350rpx;
	}
</style>

云函数代码:

'use strict';
const db = uniCloud.database();
exports.main = async (event, context) => {
	//event为客户端上传的参数
	console.log(event)
	console.log('event : ', event)
	const {
		httpMethod
	} = event
	const res = {}
	if (httpMethod === 'POST') {
		let body = event.body
		if (event.isBase64Encoded) {
			body = Buffer.from(body)
		}
		const param = JSON.parse(body) // param为客户端上传的数据
		res = await db.collection('users').add({
			name: param.name
		})
	}
	// const str = "放回数据"
	// const res = await db.collection('users').get()
	// const data = {
	// 	res,
	// 	event,
	// 	str
	// }
	//返回数据给客户端
	return data
};

改、查、删除都是类似
post 注意的是
服务端处理时要注意的几项参数:
httpMethod(表示请求方式)
body(前端请求接口时传的body参数)
path(路径,没有参数的话默认是“/”,有参数是在后面拼接)
queryStringParameters(查询字符串)举例:接口地址为:https://www.xxx.com/api/users?name=“张三”&age=19
服务端接收到的就是:queryStringParameters:{name:“张三”,age:19}

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
您可以使用以下代码示例来调用函数实现云数据库增删改查操作: 1. 函数代码(示例为Node.js): ```javascript const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database() // 增加数据 exports.add = async (event, context) => { try { const result = await db.collection('collectionName').add({ data: event.data }) return result } catch (err) { console.log(err) return err } } // 删除数据 exports.remove = async (event, context) => { try { const result = await db.collection('collectionName').doc(event.id).remove() return result } catch (err) { console.log(err) return err } } // 更新数据 exports.update = async (event, context) => { try { const result = await db.collection('collectionName').doc(event.id).update({ data: event.data }) return result } catch (err) { console.log(err) return err } } // 查询数据 exports.query = async (event, context) => { try { const result = await db.collection('collectionName').doc(event.id).get() return result.data } catch (err) { console.log(err) return err } } ``` 2. 小程序端调用函数: ```javascript wx.cloud.callFunction({ name: 'functionName', data: { // 根据不同操作传递不同参数 // 如添加操作:{ data: { name: 'xxx', age: 18 } } // 如删除操作:{ id: 'xxxxx' } // 如更新操作:{ id: 'xxxxx', data: { name: 'xxx', age: 20 } } // 如查询操作:{ id: 'xxxxx' } }, success: res => { console.log(res.result) // 根据不同操作处理返回结果 }, fail: console.error }) ``` 请将上述代码中的 `collectionName` 替换为您要操作的集合名称,将 `functionName` 替换为您函数的名称。根据不同的操作,传递相应的参数即可实现云数据库增删改查功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值