我们都知道,当前开发一个微信小程序前端、服务器和数据库结合的项目确实挺复杂的。正好,我和团队成员正在处理这样一个项目,遇到了不少难题,下面我来给大家详细说说。
数据库准备就绪
我们团队里有个同事很厉害,提前就搭建好了腾讯云的MySQL数据库,并且提供了公网接入点。起初我以为一切都会很顺利,但后来发现,真正的挑战还在前方。虽然有了数据库,但这只是第一步,如何让小程序、服务器和数据库之间能够顺畅交流,变成了我们面临的一大难题。
云开发的纠结
一开始,我就看中了小程序自带的云端开发功能,觉得挺方便的,甚至考虑过把数据库也搬过去。可是一打开计费页面,看到10个云函数,心里就犯嘀咕,不清楚是不是我理解错了。担心开发到一半出问题,就立刻决定放弃了。虽然云开发挺不错,但成本问题确实得考虑,毕竟我也想低成本高效地完成项目。
阿里云的波折
听说阿里云的学生认证可以免费使用两个月的服务器,我便急忙去申请了。然而,刚一登录就遇到了不少麻烦。小程序要用到 wx.request,而这又必须使用 HTTPS 连接。而要使用 HTTPS,又必须拥有 SSL 证书。免费的证书不支持 IP 公网地址,所以还得购买域名和进行备案。我在网上搜索了一些所谓的绕行技巧,却只看到一堆不相关的文章,让我感到十分困惑。最终,我只能选择放弃。这一趟折腾下来,真觉得阿里云这事太复杂了。
腾讯云函数新尝试
阅读腾讯云数据库资料时,我发现Serverless产品类别中有云函数这一项,便产生了尝试的念头。关于注册账号和开通服务的过程,这里就不再详细描述了。首先,我进入了云函数的控制台,然后在左侧的函数服务区域创建了新的函数。在模板页面搜索“mysql”,挑选合适的模板后,便完成了创建。先不开启私有网络,暂时让云函数通过公网访问数据库进行测试。待测试完毕,再调整至私有网络,这样访问速度会更快,且无需担心外网流量费用。
云函数创建完成
函数名和说明可随意填写,其他配置无需变动,云函数便成功创建。随后需要设置一个外网可访问的API接口。进入云函数的控制台页面,选中已创建的云函数,在左侧的触发管理中,新建一个触发器,再创建一个API服务,取名随意,但需确保关闭集成响应功能。接着进入函数管理界面,网页会自动启动编辑器,您可以直接在此处编写函数,无需烦恼复杂的配置过程。
小程序与服务器联通
开启自动部署功能后,保存文件即可自动部署函数(若函数流量较大,则不建议这样做)。将 mysql.createConnection 的参数修改为云数据库的外网地址,并添加端口号。进行测试时,从数据库的 Test 表中选取所有数据返回,确保服务器端已准备就绪。在小程序中,我们通过wx.request函数来执行HTTPS请求。首先,搭建一个空白的微信小程序项目。接着,在bindViewTap函数中进行代码修改,将url设置为API网关的触发路径。完成编译后,点击用户头像,你会在控制台看到SQL的输出结果,表明连接已经成功建立。