小程序·云开发初级FAQ

之前参加过小程序·云开发相关的分享, 在团队内进行了推广, 感觉官方的宣传不够直接, 还是太玄乎了, 这是收集了猫眼娱乐前端工程师的问题, 和相关答疑, 部分问题是和小程序·云开发的同学沟通过的结论

主要面向初级前端工程师, 快速了解云开发是怎么回事, 不涉及复杂代码

  • 有小程序开发经验
  • 理解 server 端基础, 并有少量node.js server端经验

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

官方文档, 不用着急点, 下面FAQ未提及的可以进来看

主要提供两种能力

1.1 提供持久存储

持久存储是指删除微信或更换手机后, 用户重新打开我们的小程序, 仍旧能让用户看到自己的信息

主要通过两种存储容器

  1. 类mangodb的 数据库存储 , 比如用户提交的文章
  2. 文件存储 , 比如用户上传的照片

1.2 提供简化的server端编程环境

云函数

简单解释: 在小程序端写上函数名 + 参数, 就能调用远端的一个函数

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

  1. 有些业务逻辑涉及 保密信息 , 不能写在小程序上, 比如: 价格计算, 交易流程
  2. 有些操作需要 更高的权限 , 比如: 管理员可以删除所有用户的数据.
  3. 桥接到第三方接口, 小程序https接口域名数量超限, 或者第三方接口不是https接口.

2. 直接操作数据库会不会有安全问题

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

  1. 每个用户只能修改自己创建的信息, 比如自己发的文章
  2. 每个用户只能读取其他用户的信息, 但不能修改, 比如其他人发的文章
  3. 每个用户只能读取公共信息, 但不能修改, 比如公告信息, 一般会允许通过管理端修改

3. 直接操作文件存储会不会有安全风险

类似上一个数据库的权限, 通过 文件创建人 + 文件夹权限设置

文件的操作使用服务端生成的唯一ID, 不会被穷举

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

不会, 云函数的网络协议是私有的, 并且有加上数字签名验证

这套机制是在微信app内部实现的, 除非微信这套机制被攻破

5.云函数是用js写么, 运行环境是什么?

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

目前还不支持修改运行环境, 未来应该会支持自选环境

6. 使用了云开发, 是不是就不能使用自己的服务端了

不是, 两个可以并存, 就当是看起来不一样的异步调用就好

// 云开发相关api
wx.cloud.xxxx()

// 自有服务
wx.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 + e.b
}
复制代码

函数名和目录名对应, 根路径在project.config.json中定义, 详细参考官方文档中的”我的第一个云函数”

8. 云函数还有什么特殊能力?

直接获取用户的openId

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

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

9. 云函数需要我们考虑服务器运维的工作么

不需要, 只要开发好上传就行, 运行环境是独立 封闭的, 类 CentOS 7 的环境

10. 开发时和线上环境有隔离么

提供1个生产环境, 和1个开发环境, 存储和云函数都是独立的

这意味着多个开发者并行开发协作可能会有些小麻烦, 同时只能有一套代码在开发环境, 这就只能通过一些工作流程约定, 比如收敛上传权限, 每日自动部署. 应用类似git-flow的分支策略

11. 云开发是否提供有定位 地理信息 支付相关业务的支持

暂时没有, 这方面的需求还是很强的, 毕竟小程序是提倡线下扫码, 扫码后还是期望能够获取到附近的相关信息, 简单的比如城市 区划, 详细的比如商家

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

12. 什么版本的基础库支持云开发

基础库 2.2.3 之后开始支持, 但对于旧版本可以加个配置也能支持

app.json/game.json

{
  "cloud": true
}
复制代码

13. 费用呢

目前免费, 正在调研计费策略, 可能是按照调用量, 存储量计费

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

【小程序源码网资源版权风险说明】:
本站为避免不必要的纷争,分享的所有资源中一切可能有版权风险的资源将全部转载自第三方网站或平台,站长只为大家提供相关资源的介绍和跳转引导。 因可能有疏忽大意,所以如有遗漏资源侵犯了您的合法权利,请联系站长删除。
【小程序源码网资源下载使用说明】:
本站所分享的一切QQ小程序源码,thinkphp整站源码,微信小程序源码,图文教程等资源仅供用户学习参考使用,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网毫无人看的介绍】:
本站又称Z站,原名贼娘网,开站于2018年,换过三任站长,目前站长是第四任站长,本站是一个主要分享免费开源小程序源码/网站源码/免费素材/教程资源的网站,主要小程序资源有用于学习的小程序源码,也有正版原创可商用的小程序源码,是一个公益博客型网站。
【小程序源码网原创源码版权申明】:
未经小程序源码网许可,任何人不得擅自使用本站原创首发源码进行商业行为(除本站VIP用户在期限内,版权无使用限制),否则将依法承担相应赔偿责任。
【小程序源码网转载文章版权申明】:
本站所转载的QQ小程序或微信小程序源码与其他资源仅供学习,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网站长最后的屁话】:
如有您认为本站有任何侵犯您合法权益的文章,或者您有什么疑问需求,欢迎联系站长QQ,站长24小时在线,备注公司名称和源码版权问题或者需要小程序定制开发等站长业务类型可急速处理,如果您只是交流小程序的一些开发问题或源码问题可以加入QQ群讨论,就不用加站长啦,对于白嫖党,QQ群才是处理问题的天堂,当然站长也欢迎大家骚扰~
小程序源码网 » 小程序·云开发初级FAQ
嘿,投喂下嘛!