前言
本文章仅记录个人在第一个小程序项目中的获得的心得体会,并不保证解决方法的准确性。(其实去年十二月就打算写,一直拖到今天,快要忘完了…)
项目背景
去年下半年收到了微信云开发要开始收费的通知,内部商量后决定将云开发上的数据库迁移至本地服务器。
一、上手小程序
原先的项目是采用云函数和vant框架开发的,用来给团队新人记录工作时长与实时查看是否有空余位置。上手过vue等前端框架后再简单上手小程序会比较容易。印象里我是上半年就接手了这个小程序,复现了原本丢失的页面代码和更新了座位布局的UI样式。
二、主要问题
1.请求库相关
问题描述
小程序需要将接口从云函数迁移到服务器上,自带的wx.request使用体验较差,想在小程序环境中使用axios,但axios的adapter是请求适配器,只适配了nodejs和xhr。
解决过程
(1)首先,在微信开放社区查询,找到了封装好的axios-miniprogram-adapter请求库,能在多种小程序环境下使用axios。
(2)于是顺利的进入了报错环节
调试了一会发现,只要有
import axios from 'axios’
就会报错,于是去翻axios的源码
(3)在defaults中找到了原因
只要不是xml环境,他就会认为是nodejs环境,我们安装的适配库并没有起到作用。
(4)回滚以前的版本发现是在0.27时变成这样的(0.27调整了FormData,可能与此有关),于是卸载默认安装的0.28.x版本,重装0.26版本的axios就不会报错了。
PS:1.2版本疑似把这段改掉了?不过当时出现这个问题的时候是十月,也不知道现在还会不会有这个问题。
2.openid相关
小程序通常都需要辨别用户身份,此时就需要向微信方发送请求获取用户唯一的openid。一开始脑抽了通过前端获取,于是喜提
惊觉我把AppSecret明文保存了…
于是跟后台沟通,从后台去获取openid,就不会有问题了。详细可以参考
3.域名证书相关
真机调试的时候发现只有windows发送得出请求 安卓和ios都发不出去
续期完tls证书就好了,也不知道为什么,有点玄学。
总结
这次项目的收获还是不少的,主要的收获还是一个遇到问题如何去解决的思路吧(不过未来真是再也不想碰小程序了- =͟͟͞͞ =͟͟͞͞ ヘ( ´Д`)ノ)