在uniCloud云对象中定义dbJQL的便捷方法

问题描述:

在讲解咸虾米壁纸uniapp全栈微信小程序vue3后台这个项目的时候,写云对象方法的时候,定义uniCloud.databaseForJQL()的时候,经常会在每个方法中都要写一次,如下所示:

javascript 复制代码
async add(params={}){
	const dbJQL = uniCloud.databaseForJQL({
		clientInfo:this.getClientInfo()
	})
	return await dbJQL.collection("xxm-activity-banner").add(params);		
},
async list(){
	const dbJQL = uniCloud.databaseForJQL({
		clientInfo:this.getClientInfo()
	})
	return await dbJQL.collection("xxm-activity-banner").get();
	
}

如上所示,在云对象中,每写一个方法,都要定义一遍dbJQL,这块代码虽然不多,但是云对象方法比较多的话,每次写还是比较费劲的,我在直接讲课的时候说过,可以直接将定义dbJQL拿到云对象最外层去,但是拿出去就无法进行代码提示了,下面是最终解决办法,又能jql语法提示,又减少代码。

解决办法:

javascript 复制代码
let dbJQL = uniCloud.databaseForJQL();
module.exports = {
	_before: function () { // 通用预处理器
		const clientInfo = this.getClientInfo();
		dbJQL = uniCloud.databaseForJQL({clientInfo});
	},
	async add(params={}){
		return await dbJQL.collection("xxm-activity-banner").add(params);	
	},
	async list(){
		return await dbJQL.collection("xxm-activity-banner").get();
	}	
}

看上面代码,是不是简化了很多,在云对象里面写方法,就不用在每个方法里面重新定义dbJQL了,而且也有代码提示。

扩展

如果想要学习uniapp、uniCloud的知识,可以学习免费的课程,可以让你能够独立完成前后端全栈的开发。

相关推荐
石小石Orz2 分钟前
因为没有使用路由懒加载,产生了一个难以寻找的bug
前端
Mintopia2 分钟前
Three.js 力导向图:让数据跳起优雅的华尔兹
前端·javascript·three.js
墨渊君17 分钟前
React Native 跨平台组件库实践: GlueStack UI 上手指南
前端
晓得迷路了25 分钟前
栗子前端技术周刊第 84 期 - Vite v7.0 beta、Vitest 3.2、Astro 5.9...
前端·javascript·vite
独立开阀者_FwtCoder28 分钟前
最全301/302重定向指南:从SEO到实战,一篇就够了
前端·javascript·vue.js
Moment37 分钟前
给大家推荐一个超好用的 Marsview 低代码平台 🤩🤩🤩
前端·javascript·github
小满zs41 分钟前
Zustand 第三章(状态简化)
前端·react.js
普宁彭于晏42 分钟前
元素水平垂直居中的方法
前端·css·笔记·css3
恋猫de小郭1 小时前
为什么跨平台框架可以适配鸿蒙,它们的技术原理是什么?
android·前端·flutter
云浪1 小时前
元素变形记:CSS 缩放函数全指南
前端·css