小程序迁移到服务器

小程序迁移到服务器
小楼夜听雨微信小程序云函数、云数据库、云存储三大核心模块,全部迁移到阿里云服务器
- 云数据库 → MongoDB 数据库**
- 云函数 → Node.js + Express 服务(微信云函数本身就是 Node.js 语法编写,直接迁移改造即可)
- 云存储 → 阿里云 OSS 对象存储(推荐)/ 宝塔本地存储(备选)(阿里云 OSS 完美适配小程序,稳定无容量限制;本地存储适合小体量项目)
- 服务部署 → 宝塔面板一键管理 Node 服务 + MongoDB +Nginx+SSL,全程可视化操作,无需手动敲 Linux 命令
前置准备
安装好宝塔 Linux
1.阿里云服务器「安全组」放行端口(重中之重)
阿里云控制台 → 你的服务器 → 防火墙 → 配置规则 → 放行以下端口(宝塔 + 业务必须)
- 宝塔面板端口:默认
8888(你的面板端口如果改过就放行对应端口) - HTTP/HTTPS:
80、443(小程序强制 HTTPS,必须放行) - Node 服务端口:
3000(默认,可自定义) - MongoDB 端口:
27017(数据库默认端口) - 规则方向:入方向,授权对象:
0.0.0.0/0
2. 宝塔面板「安全」放行端口
宝塔面板 → 安全 → 防火墙 → 放行上述所有端口(阿里云安全组 + 宝塔防火墙双重放行,缺一不可,90% 的连接失败都是这个原因)
3. 宝塔一键安装核心运行环境
宝塔面板 → 软件商店 → 搜索安装以下软件(全部一键安装,无需配置)
- 数据库:
MongoDB 4.4/5.0(推荐 4.4,和微信云数据库内核版本一致,兼容性满分) - 后端运行:
Node.js 16.x(安装 PM2 管理器(必装,自带 Node.js 环境)) - 反向代理:
Nginx 1.20+(必装,做域名反向代理 + HTTPS 配置) - 服务守护:
PM2管理器 5.5(必装,守护 Node 服务,防止服务挂掉,自动重启)
一、微信云数据库 → 阿里云 MongoDB 迁移
微信小程序云开发的数据库,底层就是 MongoDB,你数据库里的集合、文档、索引、查询语法完全一致,迁移后后端代码无需修改数据库语法,这是本次迁移最省心的模块,没有之一!
1.导出微信云数据库所有数据
- 打开微信开发者工具 → 打开你的小程序项目 → 点击左侧【云开发】→ 进入云开发控制台
- 点击左侧【数据库】→ 会看到你所有的集合(表),逐个集合导出
- 导出方式:选中集合 → 右上角【更多】→ 【导出】→ 选择导出格式为 JSON → 下载到本地电脑
2.阿里云服务器 原生安装 MongoDB(稳定版,适配微信云,复制命令即可)
前置命令:切换到 root 超级用户(获取最高权限)
1 | su - |
命令 1:配置 MongoDB 官方 yum 源
1 | cat > /etc/yum.repos.d/mongodb-org-4.4.repo << 'EOF' |
命令 2:安装 MongoDB(一键安装,自动配置环境变量)
1 | cat > /etc/yum.repos.d/mongodb-org-4.4.repo << 'EOF' |
1 | # 清理缓存 |
命令 3:一键生成完整的mongod.conf配置文件
cat > /etc/mongod.conf << ‘EOF’ # mongod.conf 完整配置,已包含所有你需要的核心设置 storage: dbPath: /data/mongodb journal: enabled: true systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log net: port: 27017 bindIp: 0.0.0.0 # 允许所有IP远程访问,已改好 security: authorization: enabled # 开启用户名密码认证,已改好 processManagement: fork: true pidFilePath: /var/run/mongodb/mongod.pid EOF
验证配置文件是否创建成功
1 | cat /etc/mongod.conf |
命令 4:创建 MongoDB 数据 / 日志目录(授权最高权限,避免启动报错)
mkdir -p /var/run/mongodb && chmod -R 777 /data/mongodb /var/log/mongodb /var/run/mongodb
命令 5:创建 MongoDB 的 systemd 服务文件(完整配置,一键生成)
1 | cat > /etc/systemd/system/mongod.service << 'EOF' |
命令 6:重新加载 systemd 配置(让系统识别新服务文件)
1 | systemctl daemon-reload |
命令7:创建mongod用户和组
1 | # 创建mongod组 |
命令8:修复所有 MongoDB 相关目录的权限
1 | # 把数据、日志、pid目录的所属者改为mongod:mongod |
命令9:
1 | # 重启服务 |
✅正常启动后,命令行会显示 active (running) 绿色状态,MongoDB 服务就彻底跑起来了!
接下来:继续创建 MongoDB 数据库 + 用户名 + 密码(和之前流程一致,复制执行)
进入 MongoDB 命令行客户端
1
mongo
创建你的数据库(和微信云一致:小锋单证生成工具)
1 | use 小锋单证生成工具 |
创建超级权限用户 + 密码(替换成你自己的用户名和密码,记好!)
1
db.createUser({user: "yzf522", pwd: "Qq2107127731", roles: [{role: "dbOwner", db: "小锋单证生成工具"}]})
✅ 执行成功会提示:
Successfully added user,用户创建完成!退出 MongoDB 客户端
1
exit
3.下载 MongoDB Compass
打开 MongoDB Compass 后,在连接框中输入:
1 | mongodb://yzf522:密码@你的阿里云公网IP:27017/小锋单证生成工具 |
4.导入数据
步骤 1:创建与微信云一致的「集合」(对应微信云的 “集合”)
- 点击界面右上角的 「Create collection」按钮;
- 在弹出的输入框中,填写「集合名」(必须和微信云导出的集合名完全一致);
- 点击「Create」,完成集合创建。
步骤 2:导入微信云的 JSON 数据(原生格式完美兼容)
- 点击刚创建的集合名称,进入集合详情页;
- 选择 「Import File」,在本地文件中找到你从微信云导出的 JSON 文件;
- 点击「Import」,等待几秒后,微信云的所有数据就会完整导入到该集合中(无需修改任何内容,布尔值、中文、表情等都能完美保留)。
二、微信云函数 → 阿里云 Node.js (Express) 服务 迁移
微信云函数本质:就是一个个独立的 Node.js 异步函数,语法都是 exports.main = async (event, context) => {},入参event是前端传参,context里包含用户 openid 等信息。
迁移本质:把这些独立的云函数,整合到一个 Node.js+Express 项目中,改造成 HTTP 接口,原来调用云函数的逻辑,变成小程序调用后端接口,90% 的业务代码可以直接复用,只需要做 3 处小改造!
核心前提
微信云函数里的所有代码(业务逻辑、数据库查询、数据处理)都是 Node.js 语法,完全不用重写,只是修改「运行载体」和「数据库连接方式」。
步骤 1:本地搭建 Node.js+Express 项目(本地开发调试)
- 本地电脑新建项目文件夹(比如
wxapp-server),执行初始化命令:
1 | npm init -y |
- express:轻量后端框架,快速搭建接口
- mongoose:MongoDB 的 Node.js 驱动,和微信云数据库语法一致
- cors:解决跨域问题
- body-parser:解析前端传参
- jsonwebtoken:小程序用户登录鉴权(替代微信云的 openid 自动获取)
0





