基于 ThinkJS 的云开发体验
ThinkJS 是一款企业级的 Node.js Web 开发框架,致力于集成项目最佳实践,规范项目让企业级团队开发变得更加简单,更加高效。 它基于 Koa 2.0 开发,兼容 Koa 的所有 Middleware。 内核小巧,支持 Adapter, Extend 等多种插件扩展方式,框架内的大部分功能也是通过这些方式进行扩展的。 性能优异,支持 TypeScript。
云开发 CloudBase 是云原生一体化应用研发平台为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等能力,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用、Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
其实在云开发中使用 ThinkJS 和我们日常使用大同小异,除了启动文件需要按照云开发的要求修改一下以外,内部的业务逻辑基本不需要改动。 我们可以使用云开发的 CLI 工具快速的初始化一个适配云开发的 ThinkJS 项目。 其中 thinkjs-app 是你的项目文件夹名称。
tcb new thinkjs-app thinkjs-starter
初始化完毕进入项目目录后执行 npm install 安装好依赖,就可以通过 npm start 启动开发环境了。
如果一切正常,你可以通过访问 http://127.0.0.1:8360 看到经典的 ThinkJS 的初始化界面了。
之后我们就可以愉快的进行项目的开发了。 当项目开发完毕之后,直接执行如下命令,CLI 工具就会将我们的代码部署到云函数上啦!
由此可见,通过云开发,我们的开发部署流程变的更加简单了。打通流程之后具体就是业务逻辑的开发了,关于更多 ThinkJS 和云开发的开发指南可参见官方文档 。
除了上述的云函数,云开发还提供了云数据库和云存储服务方便我们的项目快速接入相关服务。 数据库这块是比较经典的 NoSQL 的数据库操作,使用云开发的 SDK 可以非常方便的进行操作。
const cloudbase = require(‘@cloudbase/node-sdk’);
const app = cloudbase.init({…});
const db = app.database();
const _ = db.command;
let userInstance = db.collection(‘User’);
userInstance = userInstance.where({create_time: _.gt(new Date(2020, 0, 1))});
const users = await userInstance.get();
大家可以直接通过在 ThinkJS 中调用 SDK 的方法实现数据库的查询操作。
需要注意是:ThinkJS 中模型的操作都是单例的,模型实例创建后之后的所有实例操作都会对当前实例有影响。 而云开发的 SDK 是纯函数形式的,因此每次操作完都会返回被操作后的对象,不会对源对象进行修改,所以我们需要通过变量覆盖的形式获取最新的操作结果。
云开发作为基于 Serverless 的应用开发平台,不仅能方便的将我们的项目无服务器化,同时也提供了其它业务常用服务的快速接入,让我们的项目开发更加便捷。
产品介绍
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、自动弹性扩缩的后端云服务,包含计算、存储、托管等serverless化能力,可用于云端一体化开发多种端应用(小程序,公众号,Web 应用,Flutter 客户端等),帮助开发者统一构建和管理后端服务和云资源,避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。