在开发小程序时,很多人会接触到两种不同的架构模式:
- 微信原生云开发(CloudBase)
- 传统前后端分离部署(阿里云 / 腾讯云 ECS 等)
两者在 开发方式、鉴权方式、服务器管理、复杂度 上差异非常大。
本文从实际开发角度详细讲解两者的区别。
一、微信小程序原生云开发(CloudBase)
微信提供了一套完整的 Serverless 云开发体系,开发者不需要自己搭建服务器。
核心能力:
- 云函数
- 云数据库
- 云存储
- 云托管
前端可以直接调用云函数:
javascript
wx.cloud.callFunction({
name: "getUserInfo",
data: {
uid: 123
},
success(res) {
console.log(res)
}
})
二、云函数运行流程
完整流程如下:
小程序前端
│
│ wx.cloud.callFunction()
│
▼
微信云开发网关
│
▼
云函数执行环境(Node.js)
│
▼
云数据库
也就是:
前端 → 云函数 → 数据库
而不是传统的:
前端 → 后端API → 数据库
三、云函数最大特点:无需自己做鉴权
在传统 Web 开发中,调用接口通常需
token
session
jwt
cookie
但是在 微信云开发 中:
这些都 不需要开发者自己实现。
因为:
微信平台会自动帮你完成用户身份认证。
云函数中可以直接获取当前用户信息:
javascript
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
openid: wxContext.OPENID
}
}
返回结果:
javascript
{
openid: "用户唯一ID"
}
四、云函数直接操作数据库
javascript
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database()
exports.main = async (event, context) => {
return await db.collection("user").get()
}
数据库架构:
云函数
│
▼
云数据库
五、云开发的完整开发流程
1 创建云函数
javascript
cloudfunctions/
login/
index.js
package.json
2 编写云函数
javascript
exports.main = async (event, context) => {
return {
msg: "hello cloud"
}
}
3 部署到云端
javascript
右键云函数 → 上传部署
六、腾讯云 CloudBase 是什么
CloudBase 是腾讯提供的 Serverless 平台。
| 服务 | 功能 |
|---|---|
| 云函数 | Node.js 后端 |
| 云数据库 | NoSQL 数据库 |
| 云存储 | 文件存储 |
| 云托管 | 容器服务 |
七、两种架构对比
| 对比 | 微信云开发 | 阿里云服务器 |
|---|---|---|
| 服务器 | 不需要 | 需要 |
| 运维 | 不需要 | 需要 |
| API | 云函数 | 自己写接口 |
| 鉴权 | 微信隐式鉴权 | 自己实现 |
| 数据库 | 云数据库 | MySQL / Mongo |
| 部署 | 上传云函数 | 部署服务器 |
| 成本 | 较低 | 较高 |