云函数,或者说 severless 技术很适合用来快速验证mvp项目,比如本次提到的腾讯云开发。
云开发的云托管可以参考我的另一篇文章 腾讯云托管:基础篇 · 语雀
腾讯云开发提供了基础的:
- 文件存储功能,能传能下
- 类mongo的数据库功能,增删改查
- 云函数触发器,自定义api操作,封装接口,可选node.js驱动
基础使用
有了这些能力,就有了今天要说的 CloudBase CMS
,使用 node.js 驱动的cms。
官网文档在这里 https://docs.cloudbase.net/cms/intro.html
经过体验,cms的后端功能较为完整:
- 管理后台一键安装
- 自定义数据模型
- 完整权限控制
- 源码开放,方便部署,二次开发
- 数据集成 webhook ,api接入
基础的安装不再补充,倒是挺适合做成视频教程的。
仿照官网博客,补充模型建立,跨表联动
比如博客官网系统,博客文章、作者、推荐banner广告位
比如商城系统,商品名称,价格,库存,详情
如果要进一步筛选,如何处理?这就需要进一步书写调用代码,也就是云函数驱动了。
可以获取源码 https://github.com/TencentCloudBase/cloudbase-extension-cms
这是源码,如何部署,需要到这里进行配置部署https://docs.cloudbase.net/cms/install/source.html
npm install -g @cloudbase/cli@latest
cloudbase -v
# 或者使用简称
tcb -v
tcb -h
结束部署相关。
提供了 rest-api 吧,可以通过 @cloudbase/js-sdk
,可以进一步js操作。
结合SSG实现静态网站部署
基于 webHook 可以实现静态网站部署,这个待验证。
对于博客网站来说,我们可以通过 http 的方式来获取结果,进一步借助node.js 的能力,实现 markdown 文件导出。要么自己书写脚本放 github action ,要么也书写成云函数,我倾向于使用云函数来处理。
有了md文件,借助 hexo vuepress 等工具可以生成SSG文件,解耦后端实现自动部署。
云函数的魅力
云函数操作文件存储和数据库,彻底解放了前端的想象力。
TCB
tcb login # 进行登录
通过 http访问服务
,对于一个路径,最终可以定位到:
- 云函数,也就是后台api
- 云托管,也就是托管的静态文件
- 云存储,也就是上传的文件,静态资源
看一个demo: functions/*
,里面有 index.js
和 package.json
,依赖是 @cloudbase/node-sdk
。
index.js
文件是:
const cloudbase = require("@cloudbase/node-sdk");
const app = cloudbase.init({
env: "从列表里复制",
});
// 1. 获取数据库引用
var db = app.database();
exports.main = async (event, context) => {
// 2. 构造查询语句
const res = await db
// collection() 方法获取一个集合的引用
.collection("post")
// where() 方法传入一个 query 对象,数据库返回集合中字段等于指定值的 JSON 文档。
.where({})
// get() 方法会触发网络请求,往数据库取数据
.get();
return {
res,
};
};