3.1【微信小程序全栈开发课程】在本地搭建后端开发环境

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 第二章将前端页面的框架基本搭建好了,第三章,我们来做登录功能,登录功能需要在后端获取到用户信息,返回到前端。所以先来搭建后端开发环境

1、后端开发环境介绍


我们的项目用的是前后端分离开发


前端可以理解为微信端,对应的是src文件夹,小程序页面的显示都是在前端操作


后端就是需要配置在云服务器上的代码,对应的是server文件夹,数据库读写数据、获得接口数据都是在后端操作


我们开发项目过程中,如果server文件夹在云服务器上,每次修改后端代码后,也就是server文件夹中的代码,都要在微信开发者工具中点击上传


将项目上传到开发环境后1分钟左右才能看到效果,这样不符合咱们的诉求,太麻烦了

所以我们将后端开发环境搭建在本地,换一句话说,暂时将本地电脑当成服务器,这样修改后端代码就能实时看到效果了。


2、下载sever文件夹


点击下面链接下载代码,将解压出的server文件夹粘贴到项目中


点击链接下载代码:

https://pan.baidu.com/s/1lwPPLXF1ZWIkVErFLLnTaQ


3、修改server/config.js文件


打开server/config.js文件,将下面代码粘贴到第二行,也就是const CONF = {port: '5757',之间


serverHost: 'localhost',
tunnelServerUrl: '',
tunnelSignatureKey: '27fb7d1c161b7ca52d73cce0f1d833f9f5b5ec89',
// 腾讯云相关配置可以查看云 API 秘钥控制台:https://console.cloud.tencent.com/capi
qcloudAppId: '您的腾讯云 AppID',
qcloudSecretId: '您的腾讯云 SecretId',
qcloudSecretKey: '您的腾讯云 SecretKey',
wxMessageToken: 'weixinmsgtoken',
networkTimeout: 30000,


image.png

粘贴后的效果如下:


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oFx1iHQ6-1571125193611)(https://upload-


images.jianshu.io/upload_images/6808783-1bca3b79539ccb66.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]


我们需要将qcloudAppId、qcloudSecretId、qcloudSecretKey换成自己的腾讯云数据


首先登录自己的腾讯云,点击下面链接:


https://console.cloud.tencent.com/capi


就会出现下面图片中的信息,其中AppID就是qcloudAppId、SecretId就是qcloudSecretId、SecretKey就是qcloudSecretKey



image.png


4、安装mysql数据库


如果已经安装了mysql数据库,可以跳过这一步直接跳到第五步登录数据库


(1)linux系统安装数据库方法:这是安装过程需要设置mysql密码,该密码一定要记住,之后登录数据库会用到


~$ sudo apt-get install mysql-server mysql-client libmysqlclient-dev


2)windows系统安装数据库方法


https://jingyan.baidu.com/article/5d6edee2b90d3b99eadeec05.html


(3)Mac系统安装数据库方法,一般mac系统都自带数据库,如果没有的话,可以根据下面链接中的步骤安装一个


https://www.jianshu.com/p/07c80a66336d


5、登录数据库


输入mysql -uroot -p进入mysql


~/WeChatProjects/true_hold/server$ mysql -uroot -p
Enter password:


输入create database cAuth;创建一个名为cAuth的database数据库,注意名字必须是cAuth,注意大小写


mysql> create database cAuth;
Query OK, 1 row affected (0.00 sec)

6、修改server/config.js文件


将mysql相关配置修改成本地mysql的配置,就是下面这部分代码,主要就是将密码pass修改成本地mysql的密码,如果没有密码写pass: ‘’就可以了


mysql: {
  host: 'localhost',
  port: 3306,
  user: 'root',
  db: 'cAuth',
  pass: '123456',
  char: 'utf8mb4'
},


7、初始化环境


配置好 config.js 之后,就要开始初始化环境,初始化环境分为两步:


(1)安装依赖


# 切换到服务端代码目录
~/WeChatProjects/true_hold$ cd server/
# 安装依赖
~/WeChatProjects/true_hold$ npm install
# 安装全局依赖
~/WeChatProjects/true_hold$ sudo npm install -g nodemon


(2)初始化数据库:


~/WeChatProjects/true_hold/server$ node tools/initdb.js
======================================
开始初始化数据库...
准备读取 SQL 文件:/Users/xuzhaoning/WeChatProjects/true_hold/server/tools/cAuth.sql
开始执行 SQL 文件...
数据库初始化成功!


可能出现的错误:


Unhandled rejection Error: Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client


 
         


起因:mysql8.0加密方式的原因报错


解决方法如下:


mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.17 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)


(3)查看数据库当前的表格,可以看到初始化生成了一个cSessionInfo表

这个表是存储用户信息的地方


mysql> use cAuth;
Database changed
mysql> show tables;
+-----------------+
| Tables_in_cauth |
+-----------------+
| cSessionInfo    |
+-----------------+
1 rows in set (0.00 sec)

8、启动后端环境


在server文件夹下输入npm run dev启动坏境,就是启动后端环境,这样本地开发环境就搭建好了


~/WeChatProjects/true_hold/server$ npm run dev
//系统返回信息
> koa-weapp-demo@1.0.0 dev /Users/xuzhaoning/WeChatProjects/true_hold/server
> nodemon --config nodemon.json app.js
[nodemon] 1.19.1
[nodemon] reading config ./nodemon.json
[nodemon] to restart at any time, enter `rs`
[nodemon] or send SIGHUP to 72461 to restart
[nodemon] ignoring: .git node_modules/**/node_modules
[nodemon] watching: *.*
[nodemon] watching extensions: js,json
[nodemon] starting `node --harmony app.js`
[nodemon] spawning
[nodemon] child pid: 72464
[nodemon] watching 19 files
  koa:application use - +0ms
  koa:application use bodyParser +8ms
  qcloud-sdk[init] using config: { set: [Function], serverHost: 'localhost', tunnelServerUrl: '', tunnelSignatureKey: '27fb7d1c161b7ca52d73cce0f1d833f9f5b5ec89', qcloudAppId: '1256820481', qcloudSecretId: 'AKIDjDTn9g48Em9Rg9y5z2hFb3IT2PaZAsYz', qcloudSecretKey: '7Rav62Og9wcmcBwUEmwKn47wXbc0OYAa', wxMessageToken: 'abcdefgh', networkTimeout: 30000, port: '5757', rootPathname: '', appId: '', appSecret: '', useQcloudLogin: true, mysql: { host: 'localhost', port: 3306, user: 'root', db: 'cAuth', pass: '123456', char: 'utf8mb4' }, cos: { region: 'ap-guangzhou', fileBucket: 'qcloudtest', uploadFolder: '' }, wxLoginExpires: 7200 } +0ms
  koa-router defined route HEAD,GET /weapp/login +0ms
  koa-router defined route HEAD,GET /weapp/user +2ms
  koa-router defined route POST /weapp/upload +0ms
  koa-router defined route HEAD,GET /weapp/tunnel +0ms
  koa-router defined route POST /weapp/tunnel +0ms
  koa-router defined route HEAD,GET /weapp/message +0ms
  koa-router defined route POST /weapp/message +0ms
  koa:application use dispatch +2s
  koa:application listen +0ms
  koa-weapp-demo listening on port 5757 +0ms


9、测试效果


后端环境启动成功后,会开启5757端口,在本地电脑浏览器中输入http://localhost:5757,会返回下面的信息



image.png

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
24天前
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
51 4
|
23天前
|
人工智能 小程序
【一步步开发AI运动小程序】十五、AI运动识别中,如何判断人体站位的远近?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,无需后台支持,具有快速、体验好、易集成等特点。本文介绍如何利用插件判断人体与摄像头的远近,确保人体图像在帧内的比例适中,以优化识别效果。通过`whole`检测规则,分别实现人体过近和过远的判断,并给出相应示例代码。
|
3天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
|
17天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
22天前
|
人工智能 小程序 UED
【一步步开发AI运动小程序】十六、AI运动识别中,如何判断人体站位?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,本地引擎无需后台支持,具备快速、体验好、易集成等优势。本文介绍如何利用插件的`camera-view`功能,通过检测人体站位视角(前、后、左、右),确保运动时的最佳识别率和用户体验。代码示例展示了如何实现视角检查,确保用户正或背对摄像头,为后续运动检测打下基础。
|
16天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
51 3
|
28天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十三、自定义一个运动分析器,实现计时计数02
本文介绍如何利用“云智AI运动识别小程序插件”开发AI运动小程序,详细解析了俯卧撑动作的检测规则构建与执行流程,涵盖卧撑和撑卧两个姿态的识别规则,以及如何通过继承`sports.SportBase`类实现运动分析器,适用于小程序开发者。
|
28天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十二、自定义一个运动分析器,实现计时计数01
随着AI技术的发展,AI运动APP如雨后春笋般涌现,如“乐动力”、“天天跳绳”等,推动了云上运动会、线上健身等热潮。本文将指导你从零开始开发一个AI运动小程序,利用“云智AI运动识别小程序插件”,介绍运动识别原理、计量方式及运动分析器基类的使用,帮助你在小程序中实现运动计时和计数功能。下篇将继续探讨运动姿态检测规则的编写。
|
18天前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
|
23天前
|
人工智能 小程序 JavaScript
【一步步开发AI运动小程序】十四、主包超出2M大小限制,如何将插件分包发布?
本文介绍了如何从零开始开发一个AI运动小程序,重点讲解了通过分包技术解决程序包超过2M限制的问题。详细步骤包括在uni-app中创建分包、配置`manifest.json`和`pages.json`文件,并提供了分包前后代码大小对比,帮助开发者高效实现AI运动功能。