为什么小程序多了一个云对象?用云对象,去串联前端和数据库呢
🔒 1. 核心原因:安全第一
•
云函数:就是你最先接触到的模式。它是一段运行在云端的Node.js代码,前端调用它,它再来操作数据库。这已经解决了安全问题。 •
云对象:是uniCloud在云函数基础上提出的更进阶、更规范的开发方式。
🧱 2. 云对象:更优雅的“云函数PLUS”
a) 极简的调用体验,像本地方法一样
uniCloud.callFunction和uniCloud.database()。
•
传统云函数方式: javascript下载复制运行// 前端调用const res = await uniCloud.callFunction({ name: 'add_article', // 云函数名 data: { title: 'Hello', content: 'World' } // 参数})const id = res.result.id// 云端 add_article 函数module.exports = async (event) => { const db = uniCloud.database() const collection = db.collection('articles') return await collection.add(event) // 直接透传数据到数据库}•
云对象方式: javascript下载复制运行// 前端调用 (无比直观)const addArticleObj = uniCloud.importObject('addArticleObj') // 导入云对象const id = await addArticleObj.add('Hello', 'World') // 像调用本地类的方法// 云端 addArticleObj 云对象module.exports = { add(title, content) { // 这是一个方法 const db = uniCloud.database() const collection = db.collection('articles') return await collection.add({ title, content }) // 在此处可先进行数据校验、处理 } }看到区别了吗?云对象的调用方式更符合直觉,就像在调用一个本地JavaScript对象的方法,无需关注底层的网络请求和参数序列化。
b) 更好的代码组织和维护性
article.obj.js云对象,里面包含所有文章相关的方法:add, remove, getList, update等。这比写一堆零散的云函数(add_article, delete_article, get_article_list)要清晰得多,更容易维护和扩展。
c) 内置能力增强
💎 总结
1.
安全强制要求:平台禁止前端直连数据库,所有操作必须在云端(云函数/云对象内)完成。 2.
云函数是基础方案:提供了云端运行代码的能力,解决了安全问题。 3.
云对象是优化方案:它在云函数的基础上,提供了更优雅的调用方式、更清晰的代码组织结构和更强大的内置功能,极大地提升了开发效率和可维护性。