分享一个简单的小程序云开发框架 wx-koa,非常轻便

2020-06-22 09:31:48 +08:00
 byte10

需求

目前小程序云开发提供了托管函数的云引擎,如果每个接口都各自写一个函数,那么对开发无疑是巨大的灾难的。不方便管理,代码共用也比较麻烦。所以能否有框架能像普通的后台开发一样处理前端的请求。

基于 koa 实现

  1. koa 是一个很有意思的 web 框架,实现很简单,核心代码大概有 100 多行。越简单的东西可玩性就越强,改造起来也方便。
  2. 思路也很简单,就是 mock 一个 request 对象和 response 对象,其他都不改变,继承原有的 application 对象,重写了一些方法。支持了 http 协议的 header, method,让云开发和普通的后台开发提供一致的体验和功能。
  3. 理论上支持大部分 koa 插件,request 对象 mock 不是很完整,只是简单赋值了一些属性数据。response 对象的 end 方法重写了。所以对这 2 个对象有比较深入的依赖,那么可能会不支持。当然目前的已经可以满足大部分需求了。特别的需求可以尝试自己写插件。
  4. 内置了 koa-router,你可以直接使用它,仅仅继承了它,没有做任何改变,也许以后会用的到吧。
  5. 理论上你也可以按那个思路把 egg.js ,express 等框架变成云开发的框架,太重的框架会对 request 对象有比较深入的关联,处理起来可能会麻烦,不兼容。koa 就是最好的选择,也满足了大部分开发的需求。

使用方式

请参考 github 上的 wx-koa,很简单。而且不改变你原有的开发方式(不管是前后端都没改变),还是跟以前那样使用 url,data 进行请求。

其他

  1. 迁移到线下服务器来,迁移成本主要是在数据库的访问层,貌似跟原生的 mongodb 操作方式有些不太一样。目前不知道它们是不是 mongodb 数据库,如果是的话,理论上可以使用自己的 mongodb 客户端模块(参考了腾讯云数据库),它们连接数据库也是通过 secretid,secretkey,可以查看他们代码找到获取这 2 个钥匙的入口,然后放到自己 mongodb 客户端模块中,这里我没有去研究实践,小伙伴可以去搞搞哦,整好留言给我吧。
  2. 既然是小程序,那么管理后台如何访问这些数据库数据?或者访问这些云函数?云开发提供了相关的 api 接口。example 中 managment-express 项目是一个简单云函数代理访问的后台服务,可以满足你的需求哦。里面配置 ENV 和 appid, appsecret,然后就可以访问到云函数接口,跟普通 ajax 保持请求一致。
2355 次点击
所在节点    分享发现
2 条回复
byte10
2020-06-22 09:51:56 +08:00
地址给大家贴一个,github.com/traceless/wx-koa
byte10
2020-09-14 14:28:44 +08:00
居然没人顶,自己可以顶一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/683621

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX