云函数,或者说 severless 技术很适合用来快速验证mvp项目,比如本次提到的腾讯云开发。

云开发的云托管可以参考我的另一篇文章 腾讯云托管:基础篇 · 语雀

腾讯云开发提供了基础的:

  • 文件存储功能,能传能下
  • 类mongo的数据库功能,增删改查
  • 云函数触发器,自定义api操作,封装接口,可选node.js驱动

省时省力搭官网:腾讯云cms - 图1

基础使用

有了这些能力,就有了今天要说的 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

  1. npm install -g @cloudbase/cli@latest
  2. cloudbase -v
  3. # 或者使用简称
  4. tcb -v
  5. tcb -h

结束部署相关。

提供了 rest-api 吧,可以通过 @cloudbase/js-sdk,可以进一步js操作。

结合SSG实现静态网站部署

基于 webHook 可以实现静态网站部署,这个待验证。

对于博客网站来说,我们可以通过 http 的方式来获取结果,进一步借助node.js 的能力,实现 markdown 文件导出。要么自己书写脚本放 github action ,要么也书写成云函数,我倾向于使用云函数来处理。

有了md文件,借助 hexo vuepress 等工具可以生成SSG文件,解耦后端实现自动部署。

云函数的魅力

云函数操作文件存储和数据库,彻底解放了前端的想象力。

TCB

  1. tcb login # 进行登录

通过 http访问服务 ,对于一个路径,最终可以定位到:

  • 云函数,也就是后台api
  • 云托管,也就是托管的静态文件
  • 云存储,也就是上传的文件,静态资源

image.png

看一个demo: functions/* ,里面有 index.jspackage.json ,依赖是 @cloudbase/node-sdk

index.js 文件是:

  1. const cloudbase = require("@cloudbase/node-sdk");
  2. const app = cloudbase.init({
  3. env: "从列表里复制",
  4. });
  5. // 1. 获取数据库引用
  6. var db = app.database();
  7. exports.main = async (event, context) => {
  8. // 2. 构造查询语句
  9. const res = await db
  10. // collection() 方法获取一个集合的引用
  11. .collection("post")
  12. // where() 方法传入一个 query 对象,数据库返回集合中字段等于指定值的 JSON 文档。
  13. .where({})
  14. // get() 方法会触发网络请求,往数据库取数据
  15. .get();
  16. return {
  17. res,
  18. };
  19. };