LeanCloud 入门使用记录 —— 我的小程序后端是怎么搭起来的

LeanCloud 入门使用记录 —— 我的小程序后端是怎么搭起来的
Mintal最近在做一个叫M-Planease的小程序,主要是用来做计划管理的,前端我自己写的,后端则选择了LeanCloud。这篇文章算是一个小结,记录我使用LeanCloud的一些过程,如果你也在做小程序、web项目,或者不太想自己部署服务器、搭数据库,LeanCloud也许能帮上忙
为什么选 LeanCloud?
其实刚开始我也犹豫过,要不要直接用 Node.js 搭一套后端,MongoDB 或 MySQL 来存数据。但项目时间比较紧,而且我不想一开始就把重心放在 DevOps 上。
LeanCloud 提供了:
数据存储(有点类似于
Firebase
或Supabase
)用户系统(注册登录等)
云函数(逻辑托管)
文件存储(适合小程序上传头像、附件)
对我这种想先做 MVP 的个人开发者来说,够用了。
一、初始化 LeanCloud 项目
先去官网注册账号,然后创建一个应用。LeanCloud 支持国内节点和国际节点(这个看你用户群在哪里)。创建完应用后,记下AppID
、AppKey
和服务器地址(Server URL)
,后续初始化 SDK 会用到。
小程序端需要用它的小程序 SDK,可以用 npm 装:
1 | npm install leancloud-storage |
然后在入口文件中初始化:
1 | import AV from 'leancloud-storage'; |
二、数据存储(增删改查)
LeanCloud 的数据结构是 “类”(Class)+ “对象”(Object),相当于 MongoDB 里的集合和文档。你可以理解成每一个 Class 就是一张表。
举个例子,比如我有一个“计划”类 Plan
:
1 | const Plan = AV.Object.extend('Plan'); |
查询则是这样
1 | const query = new AV.Query('Plan'); |
更新数据
1 | plan.set('status', 'complete'); |
删除数据
1 | plan.destroy(); |
很像操作本地对象,逻辑上比较顺手。
三、用户系统(登录注册)
LeanCloud 提供了用户表(_User
),直接用它的 API 就能注册、登录:
注册用户
1 | const user = new AV.User(); |
登录用户
1 | AV.User.logIn('testuser', '123456').then((user) => { |
获取当前用户
1 | const currentUser = AV.User.current(); |
LeanCloud SDK 会自动保存登录态,不用你自己做 Token 管理,方便但也需要注意退出逻辑:
1 | AV.User.logOut(); |
四、小程序登录适配
如果你在小程序端使用微信登录,可以结合 wx.login()
和 LeanCloud 的 loginWithWeapp()
:
1 | AV.User.loginWithWeapp().then((user) => { |
在 LeanCloud 控制台中要绑定小程序 AppID,并开启小程序登录权限,不然会报错。
五、云引擎(可选)
虽然前端可以直接操作数据,但有些逻辑还是放在后端更合适,比如权限控制、定时任务等。LeanCloud 提供了 Node.js 云函数的写法,支持部署:
1 | AV.Cloud.define('hello', async (request) => { |
你可以在前端调用它:
1 | AV.Cloud.run('hello').then(console.log); |
部署流程 LeanCloud 文档里写得比较清楚,这里就不赘述了。
六、控制台使用和权限设置
控制台可以查看数据表结构、对象详情、API 调用日志,也可以设置 Class 权限(比如是否允许用户写入、是否只读等)。
我建议早期开发可以先允许所有权限,等功能稳定了再收紧权限,避免前期因为权限卡住开发效率。
小结
LeanCloud 的确不能满足所有场景,比如它不适合处理高并发的业务逻辑,不支持关系型数据的复杂 JOIN,也不能自定义服务结构。但如果你和我一样,是一个人做 side project、MVP、个人产品,它能帮你省下很多配置服务器、搭建数据库、写用户系统的时间。
我目前用下来体验还算平稳,主要是省心。如果以后 M-Planease 的用户量上来了,也许我会考虑迁移到自建后端。