小程序·云开发:初级前端工程师必知的持久存储与能力解析

2024-07-15
来源:网络整理

之前参加过小程序·云开发相关的分享会,在团队内部推广过,感觉官方的推广不够直接,太神秘了。下面是猫眼娱乐前端工程师的一些问答,部分问题是跟开发过小程序·云的同学交流后的总结。

主要针对初级前端工程师,快速了解云开发到底是怎么回事,无需涉及复杂的代码

1.什么是小程序云开发?

官方文档,不用担心,如果下面的常见问题解答中没有提到,你可以查看它

主要提供两种能力

1.1 提供持久存储

持久化存储就是说当用户删除微信或者换手机之后,重新打开我们的小程序,仍然可以看到自己的信息。

主要通过两种类型的存储容器

类数据库存储,比如用户提交的文章 文件存储,比如用户上传的照片 1.2 提供简化的端到端编程环境

简单解释:在小程序端写入函数名+参数,即可调用远程函数

为什么不直接写到小程序端,而是绕这样的弯路呢?最常见的原因是:

有些业务逻辑涉及到机密信息,不能写入小程序中,比如价格计算。交易过程中有些操作需要较高的权限,比如管理员可以删除所有用户数据。对接第三方接口时,小程序接口域名数量超过限制,或者第三方接口不是接口。2.直接操作数据库,会不会有安全问题?

云开发的数据库和传统数据库有些不同,会自动给每张数据表添加创建者字段+表权限设置,后续操作都会基于这些约束,一般策略是

每个用户只能修改自己创建的信息,比如自己发布的文章等。每个用户只能阅读其他用户的信息,但不能修改。比如公开的信息每个用户只能阅读,但不能修改。比如公告信息一般都是通过管理端才允许修改的。 3.直接操作文件存储是否存在安全风险?

类似前面数据库的权限,由文件创建者+文件夹权限设置

文件操作使用服务器生成的唯一ID,不会详尽无遗

4.别人会调用我的云函数吗?

不是, 的网络协议是私有的,并且有数字签名验证。

此机制是在微信应用程序内部实现的。除非微信机制被攻破

5.云函数是js写的吗?运行环境是什么?

是js,运行环境是8.9,支持关键字

目前不支持修改运行环境,后续应该会支持自选环境

6.如果使用云开发,是不是就不能再使用自己的服务器了?

不是,两者可以共存,只需将它们视为看起来不同的异步调用即可。

微信小程序云开发需要域名吗_微信小程序域名多少钱_微信小程序云开发域名

// 云开发相关api wx.cloud.xxxx() // 自有服务 wx.request() 复制代码

因为是运行环境,所以云函数可以使用http tcp模块,这样请求就可以通过云函数转发到任意域名,而不受小程序端请求域名的限制。

7. 典型的云功能是什么样的?

// 小程序端, 调用 wx.cloud.callFunction({ name: 'foo', data: { a: 1, b: 2 }, success: function(res) { console.log(res.result) } ) // 云函数, 声明 // cloudfunctionRoot/functions/foo/index.js exports.main = async function(e, ctx) { return e.a + e.b } 复制代码

函数名对应目录名,根路径定义在..json中,具体可以参考官方文档《我的第一个云函数》。

8. 还有什么特殊功能?

直接获取用户的

// index.js exports.main = (event, context) => { return event.userInfo } 复制代码

如果想获取用户头像、昵称等信息,还是需要在小程序端进行授权。

9.云函数需要考虑服务器运维吗?

不是,开发上传就行,运行环境独立封闭,7类环境

10. 开发环境和线上环境隔离吗?

提供1个生产环境和1个开发环境,具有独立的存储和云功能

这意味着多个开发人员并行开发协作可能会有点麻烦,同时开发环境中只能有一套代码,这只能通过一些工作流协议来实现,比如聚合上传权限、每日自动部署。应用类似 git-flow 的分支策略

11、云开发是否提供基于位置的支付服务支持?

还没有。这个需求还是比较强的,毕竟小程序推崇的是线下扫码,大家扫码之后还是希望能够获取附近的相关信息,比如简单的城市区划、详细的商家信息等。

正在开发小程序云的同学正在收集这方面的需求

12. 哪些版本的基础库支持云开发?

2.2.3之后支持基础库,但是对于老版本,可以添加配置来支持

app.json/game.json

{ "cloud": true } 复制代码

13. 费用怎么样?

目前免费,计费策略正在调研中,可能根据调用次数和存储量收费

分享