1小时搭建微信小程序后端

Wesley13
• 阅读 1720

CoNami小程序Demo端到端开发指南

1. 注册登录微信公众平台

登录https://mp.weixin.qq.com,里面有详细的指引,这里就不赘述了。这里注册最后得到的比较重要的东西包括两个

1小时搭建微信小程序后端

  1. 设置-开发设置-开发者ID:AppID/AppSecrect,后端服务器和微信API服务器认证用,也就是告诉微信,我是个合法的小程序后端,可以和你通信并调用登录支付API等
  2. 设置-开发设置-服务器域名:微信端测试/发布时,会校验这些域名是否实名认证并被备案,白名单。这个域名可以到腾讯云购买并备案,中间也会折腾一些时间。

2. 前端开发

这次的开发Demo为一个投票用小程序,后端为tomcat+js+db框架,前端为标准的小程序前端,开发者不需要操心tomcat和db的服务,只需要用js编写业务逻辑即可。

Demo的github地址:

https://gitee.com/yingpo/weixin-xiaochengxu-vote

  • 简单介绍下,app目录为前端代码,nami目录为后端代码和sql,都是由js编写
  • 使用微信开发者工具打开app目录,在调试模式下如果没有备案的域名会导致前台无法访问后台,所以在启动开发者工具的时候可以不填写AppID,这样开发者工具不会校验域名是否在白名单里面
  • 修改/utils/config.js, 设置后端运行的IP端口,然后进行编译

1小时搭建微信小程序后端

3. 后端开发部署

3.1 业务逻辑镜像制作及本地运行

登录并打开阿里云 容器镜像服务, 找到conami镜像,网页地址为:https://cr.console.aliyun.com/?spm=5176.166170.863063.btn1cr3.69f9217fdGki9I#/imageDesc/cn-qingdao/conami/conami/detail

  1. 在windows下运行docker(可选)

由于微信小程序的前端IDE只支持windows,所以方便点最好在windows下跑个docker,可以看这个官方指导:https://docs.docker.com/docker-for-windows/install/

  1. 下载及基础框架镜像

    docker pull registry.cn-hangzhou.aliyuncs.com/conami/conami

  2. 业务逻辑源代码出场!从框架基础镜像构建自己的业务逻辑

    git clone https://gitee.com/yingpo/weixin-xiaochengxu-vote.git

    这里的Dockerfile显示了业务逻辑部分怎么拷进去,业务逻辑在/nami/request目录下

    docker build -t myvote .

    docker push myvote {你的镜像仓库地址}

  3. 启动容器,初始化数据库

    docker run -d -p 8080:8080 myvote

    默认的ENTRYPOINT为 bash /nami/service.sh start

1小时搭建微信小程序后端

  • 这时候直接点Connect是进不去的,里面的jdbc的url需要修改为

    jdbc:h2:/nami/database/nami;AUTO_SERVER=TRUE;MVCC=TRUE

1小时搭建微信小程序后端

可以点击Save把这个地址存下来,以后登录db不用再写

  • 然后把weixin-xiaochengxu-vote/nami/sql目录里面的vote_demo.sql复制到这个数据库内执行,建表

1小时搭建微信小程序后端

至此,整个后端的小程序服务容器就已经跑起来了。在小程序开发者工具上,修改app/utils/config.js,把里面的host地址这行改为目前使用的服务器地址,可以正常进行投票、查看等操作

1小时搭建微信小程序后端

参考文档

NAMI来了!五分钟让微信小程序接上数据库

下期预告:后面我们会讨论怎么用DevOps方式来优化后端逻辑的开发

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
梦
3年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Easter79 Easter79
2年前
Taro小程序自定义顶部导航栏
微信自带的顶部导航栏是无法支持自定义icon和增加元素的,在开发小程序的时候自带的根本满足不了需求,分享一个封装好的组件,支持自定义icon、扩展dom,适配安卓、ios、h5,全面屏。我用的是京东的Taro多端编译框架写的小程序,原生的也可以适用,用到的微信/taro的api做调整就行,实现效果如下。!在这里插入图片描述(https://i
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这