你做了一个小程序,功能写得很漂亮。但是用户数据存哪?怎么让每个用户看到自己的记录?怎么实现“微信一键登录”?
在以前,这需要自己买服务器、搭数据库、写API接口、配域名、搞SSL证书……光听见这些词,很多人就直接放弃了。
现在有了小程序云开发,这些都不用你管了。哪怕你只会写前端,也能在半小时内做出一个带完整后端能力的小程序。
云开发就是微信帮你把服务器、数据库、文件存储全都准备好,你在小程序里直接调用它的API就可以了,不用自己搭建和维护任何后端。
类比一下:
传统开发 = 自己种地、浇地、收菜、炒菜
云开发 = 直接去菜市场买菜,回家炒一下就行
菜市场就是微信提供的云服务:数据库、云函数、云存储、云调用(比如发送模板消息)。
不需要写SQL语句,直接在代码里操作JSON数据。
// 获取所有待办事项 const db = wx.cloud.database() db.collection('todos').get().then(res => { console.log(res.data) // 你存的数据都在这里 })
增删改查都很直观:.add()、.update()、.remove()。而且微信自动处理了权限——你可以设置“仅创建者可读写”“所有人可读仅创建者可写”等规则,不用自己写鉴权逻辑。
如果你有一个操作涉及到多个数据库表、需要复杂计算或调用第三方API,直接在小程序里做不安全或太慢,就可以写一个云函数。
云函数就是跑在微信服务器上的一小段Node.js代码。你可以在里面调用数据库、发HTTP请求、甚至用npm包。
// 云函数示例:给指定用户发送模板消息 const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event, context) => { const { userId, message } = event // 调用微信模板消息API // ... 你的逻辑 return { success: true } }
写完之后,在小程序里一行代码调用:
wx.cloud.callFunction({ name: 'sendMessage', data: { userId: 'xxx', message: 'hello' } })
小程序里需要上传用户头像、商品图片、录音文件等。云存储让你直接调用上传接口,返回一个永久可访问的云文件ID和URL。
wx.chooseImage({ success: chooseRes => { wx.cloud.uploadFile({ cloudPath: 'my-avatar.png', filePath: chooseRes.tempFilePaths[0], success: res => { console.log('图片地址', res.fileID) // 存这个ID到数据库就行 } }) } })
在没有云开发的时代,手机号登录需要自己搞短信验证码、绑定账号体系,非常麻烦。用云开发,配合云调用,能做到真正的“一键授权”。
步骤:
小程序端调用wx.login获取临时code。
把这个code传给一个云函数。
云函数里用cloud.openapi或wx-server-sdk自带的cloud.getOpenData就可以拿到用户的openId和unionId,甚至可以拿到手机号(需用户授权)。
云函数里直接把用户信息存到云数据库的users集合中。
用户下次打开时,自动根据openId识别身份。整个过程不超过20行代码,而且用户不需要输入任何东西。
✅ 适合:
个人开发者、学生、创业团队做MVP(最小可行产品)
工具类、内容类、企业展示、简单社区、问卷表单等
不想专门招后端工程师的项目
快速原型验证
❌ 不太适合:
极高并发(几百万日活)且需要精细控制数据库索引和查询性能的场景
复杂的多媒体处理(视频转码等)——当然你也可以配合云函数调用第三方服务,但成本可能不低
需要自建推荐系统、机器学习模型等深度定制后端的场景
云开发有免费额度,对于个人小项目完全够用:
数据库读操作:每月免费5万次;写操作:每月3万次
云函数调用:每月免费20万次
云存储容量:免费5GB,下载流量每月免费10GB
一个几百人用的工具类小程序,通常连免费额度都用不完。如果用户量上去了,按量付费也很透明:读操作大约0.015元/万次,写操作0.05元/万次。比买一台云服务器划算太多了——后者最低配一个月也要几十块,还什么都不包。
在微信开发者工具里,点击“云开发”按钮,开通环境(免费)。
在项目目录下创建cloudfunctions文件夹,右键“新建Node.js云函数”。
在小程序代码中用wx.cloud.init({ env: '你的环境ID' })初始化,然后开心地调用数据库和云函数。
官方文档里有完整的“待办事项”教程,跟着做一遍,你就已经把数据库、登录、上传图片全都跑通了。
云开发确实简单,但它不是“银弹”。做稍微复杂一点的功能(比如全文搜索、联表查询、事务操作),还是需要你理解数据结构的设计。另外,云函数的冷启动(第一次调用时稍微慢一点)如果处理不好,也会影响体验。
但话说回来——对于一个个人开发者或新手团队,云开发带来的效率提升是革命性的。你不再需要纠结“到底选Java还是Go”“Nginx怎么配置”“如何防止SQL注入”,可以专注于你的小程序的创意和功能。