河师大拼团项目总结2.0
微信小程序开发
1、微信官方开发文档
https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html
2、应用列表
https://dev.dcloud.net.cn/app/index?type=1
3、小程序
https://mp.weixin.qq.com/wxamp/user/manage?action=index&use_role=1&token=1507699215&lang=zh_CN
bug
1、在微信开发者工具里运行微信小程序出现[ app.json 文件内容错误] (app.json: app.json 未找到)
解决方案:
https://blog.csdn.net/fallsTheDust/article/details/119822421
在project.config.json添加"miniprogramRoot": "./unpackage/dist/dev/mp-weixin"
2、http://localhost:8000 不在以下 request 合法域名列表中
https://www.cnblogs.com/tu-0718/p/9690021.html
解决方案:
小程序默认不会勾选最后一个不校验合法域名的选框,所以这里需要我们手动勾选不校验合法域名选框
注:一般建议在开发环境下勾选不校验合法域名选项,但线上正式环境最好不勾选不校验合法域名选框
3、点击统计页面显示服务器异常
查看后端日志报空指针异常
通过dbug OrdersServiceImpl 定位到 ordersMapper层中的Sql语句查询出现问题
拼团订单查出id为空的数据,导致空指针异常
SELECTg.idid,g.titletitle,g.create_timecreate_time,g.price*Count(o.group_booking_id)
asallMoney,Count(o.group_booking_id)countfromorders oLEFTjoingroup_booking gono.group_booking_id
=g.idWHEREo.is_payment='1'GROUPBYo.group_booking_idLIMIT10;
分析Sql语句为左连接,以orders(订单)表为主表
以group_booking(拼团)表为副表
当orders表中所有满足is_payment=1的订单都会在结果中查询出来。但是由于group_booking(拼团)表中id为15的拼团被删除了,所以导致查询的结果中出现了第一行id为null的空数据(应该是id为15的拼团,却被删除了),导致了空指针异常,以致于使小程序的最终统计界面出现了服务器异常问题。
错误解决:
一开始我将这个 left join 改为了 right join:
这样就以group_booking(拼团表)为主表,orders(订单)为副表。
这样确实是暂时解决了问题,只查询了id=17的拼团,但是经过仔细分析后,发现右连接却是治标不治本,为什么,现在开始分析:
右连接是以拼团表为主表,订单表为副表,当订单表中有多个条件满足要求的时候,在最终的结果中只会显示一条数据。
这个以orders订单为主表,拼团表为副表,进行左查询,拼团对订单表为一对多,如果右连接,当订单表中有多个满足条件,在结果中只能查出一个,所以采用左连接。
正确解决:
将group_booking_id :15 的订单删除
成功查询出正常拼团数据
小程序统计页面终于正常显示出数据
4、Caused by: java.net.BindException: Address already in use: bind
解决:
1、cmd命令模式下输入netstat -ano,然后找到占用端口的那个进程 如下图..
2、PID号为 31852 的进程占用着8000端口,打开任务管理器查看详细信息,查找PID号为 31852 进程,点击结束任务即可
( 也可以直接 使用命令 taskkill /pid 31852 /f )
项目成功跑起
git
git stash 用法总结和注意点
https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html
git教程(开发中使用)
https://blog.csdn.net/D_ps19990501/article/details/119272740
git status
git stash list :查看stash了哪些存储
git stash save "名字" :执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
git pull origin devHu :(拉取远程仓库代码)
git stash pop :取出暂存区代码并删除暂存区 执行完这一步最好在本地再跑一下项目,看有没有问题
命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
git add .
git commit -m "" :提交代码
有时改动量大提交不上,并提示已是最新代码
这时就执行git commit -am "备注信息
git push:推送到远程仓库
如果是第一次推送,推送同时要创建远程分支
git push origin HEAD:[远程仓库开发分支名]推送到远程仓库
git push upstream HEAD:[中央仓库开发分支名]推送到中央仓库
稳妥起见之后也建议用git push origin [远程仓库开发分支]
git push origin HEAD:devHu
最终上传到我的代码分支
请求与主代码合并
部署
2、docker 构建git+maven+jdk8的centos7环境,实现轻量级的springboot项目的自动化部署
3、docker安装nginx规范所有项目的反向代理(一个项目一个反向代理的conf配置文件)
4、docker 构建centos7+git+nvm镜像,实现自主切换node版本统一部署前端vue项目
5、基于Docker使用Nginx https://blog.csdn.net/weixin_44932487/article/details/117193191?spm=1001.2014.3001.5501