小程序·云开发初级FAQ
之前参加过小程序·云开发相关的分享,在团队内进行了推广,感觉官方的宣传不够直接,还是太玄乎了,这是收集了猫眼娱乐前端工程师的问题,和相关答疑,部分问题是和小程序·云开发的同学沟通过的结论 主要面向初级前端工程师,快速了解云开发是怎么回事,不涉及复杂代码
1. 小程序云开发是什么?官方文档,不用着急点,下面FAQ未提及的可以进来看 主要提供两种能力 1.1 提供持久存储持久存储是指删除微信或更换手机后,用户重新打开我们的小程序,仍旧能让用户看到自己的信息 主要通过两种存储容器
1.2 提供简化的server端编程环境云函数简单解释: 在小程序端写上函数名 + 参数,就能调用远端的一个函数 为什么不直接写到小程序端,而要绕弯子要这样? 最常见的原因是:
2. 直接操作数据库会不会有安全问题云开发的数据库和传统数据库有些区别,他会自动给每个数据表增加一个?创建人字段 + 表权限设置?,后续的操作都会基于这些约束,一般的策略是
3. 直接操作文件存储会不会有安全风险类似上一个数据库的权限,通过?文件创建人 + 文件夹权限设置 文件的操作使用服务端生成的唯一ID,不会被穷举 4. 别人会不会调用我的云函数不会,云函数的网络协议是私有的,并且有加上数字签名验证 这套机制是在微信app内部实现的,除非微信这套机制被攻破 5.云函数是用js写么,运行环境是什么?是js,运行环境是nodejs 8.9,支持async await关键字 目前还不支持修改运行环境,未来应该会支持自选环境 6. 使用了云开发,是不是就不能使用自己的服务端了不是,两个可以并存,就当是看起来不一样的异步调用就好 // 云开发相关api
wx.cloud.xxxx()
// 自有服务
.request()
复制代码
由于是nodejs的运行环境,所以云函数可以使用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 + b
}
复制代码
函数名和目录名对应,根路径在project.config.json中定义,详细参考官方文档中的"我的第一个云函数" 8. 云函数还有什么特殊能力?直接获取用户的openId 如要获取用户头像 昵称等信息,还是需要在小程序端进行授权才行
|