在轻量服务器上搭建微信小程序的 Node.js 后端,可以按照以下步骤进行。这里假设你使用的是腾讯云、阿里云等常见的轻量应用服务器(如 1核2G 的配置),操作系统为 Ubuntu。
✅ 一、准备工作
-
购买并登录轻量服务器
- 登录云服务商控制台,购买轻量应用服务器(推荐选择 Ubuntu 20.04/22.04 LTS)。
- 获取公网 IP 地址和 SSH 登录信息(用户名通常是
ubuntu或root)。
-
本地连接服务器
ssh ubuntu@你的服务器IP
✅ 二、安装 Node.js 和 npm
# 更新系统包
sudo apt update
# 安装 NodeSource 提供的 Node.js(推荐 v18 或 v20)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 验证安装
node -v # 应输出 v18.x.x
npm -v # 应输出版本号
也可以使用 nvm 管理多个 Node 版本,适合进阶用户。
✅ 三、创建 Node.js 后端项目
-
创建项目目录
mkdir wx-backend && cd wx-backend npm init -y -
安装依赖
npm install express cors dotenv axios npm install --save-dev nodemonexpress: Web 框架cors: 处理跨域dotenv: 加载环境变量axios: 发送 HTTP 请求(用于调用微信接口)
-
创建基本文件结构
wx-backend/ ├── server.js ├── .env └── package.json -
编写
server.js
// server.js
require('dotenv').config();
const express = require('express');
const cors = require('cors');
const axios = require('axios');
const app = express();
const PORT = process.env.PORT || 3000;
app.use(cors());
app.use(express.json());
// 小程序登录接口:获取 openid
app.post('/api/login', async (req, res) => {
const { code } = req.body;
const appId = process.env.APPID;
const appSecret = process.env.APP_SECRET;
try {
const response = await axios.get(
`https://api.weixin.qq.com/sns/jscode2session`,
{
params: {
appid: appId,
secret: appSecret,
js_code: code,
grant_type: 'authorization_code',
},
}
);
const { openid, session_key, errcode, errmsg } = response.data;
if (errcode) {
return res.status(400).json({ error: errmsg });
}
// 实际项目中应生成自定义登录态(token),这里简化返回 openid
res.json({ openid, session_key });
} catch (error) {
res.status(500).json({ error: '请求失败' });
}
});
app.get('/', (req, res) => {
res.send('Hello from WeChat Mini Program Backend!');
});
app.listen(PORT, '0.0.0.0', () => {
console.log(`Server is running on http://0.0.0.0:${PORT}`);
});
-
创建
.env文件APPID=your_mini_program_appid APP_SECRET=your_mini_program_app_secret PORT=3000注意:
APPID和APP_SECRET在 微信公众平台 小程序设置中获取。
✅ 四、启动服务
-
修改
package.json添加脚本"scripts": { "start": "node server.js", "dev": "nodemon server.js" } -
后台运行服务(生产环境推荐 pm2)
npm install -g pm2 pm2 start server.js --name "wx-backend" pm2 startup pm2 save这样即使关闭终端,服务也会持续运行。
✅ 五、配置防火墙和域名(可选)
-
开放端口
- 在云服务器控制台安全组中,放行 端口 3000(或你使用的端口)。
- 或者使用 Nginx 反向X_X到 80 端口。
-
绑定域名(推荐)
- 购买域名并解析到服务器 IP。
- 使用 Nginx + HTTPS(Let’s Encrypt)更安全,微信要求 HTTPS。
示例 Nginx 配置:
server { listen 80; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }然后用 Certbot 配置 HTTPS。
✅ 六、小程序前端调用示例
在微信小程序中:
wx.login({
success(res) {
if (res.code) {
wx.request({
url: 'https://yourdomain.com/api/login', // 或 http://ip:3000/api/login
method: 'POST',
data: { code: res.code },
success(res) {
console.log('openid:', res.data.openid);
}
});
}
}
});
⚠️ 注意:正式上线必须使用 HTTPS,否则微信会拦截请求。
✅ 七、其他建议
| 项目 | 建议 |
|---|---|
| 数据库 | 使用 MongoDB(MongoDB Atlas)或 MySQL |
| 用户鉴权 | 使用 JWT 生成 token,避免暴露 session_key |
| 日志 | 使用 Winston 记录日志 |
| 监控 | pm2 monit 查看运行状态 |
✅ 总结
你已经完成了:
✅ 购买并登录轻量服务器
✅ 安装 Node.js
✅ 搭建 Express 后端
✅ 实现微信登录接口
✅ 使用 pm2 守护进程
✅ (可选)配置域名和 HTTPS
现在你的微信小程序就可以通过这个后端与微信服务器交互了!
如果你需要,我可以提供完整项目模板(GitHub 仓库结构)或集成数据库的版本。需要的话请告诉我 😊
云计算