评论

告别胶水代码!一行命令,让你的小程序云函数实现API路由自动化

还在为小程序云函数里冗长的 switch...case 路由烦恼吗?本文介绍 rpc-server-tcb,一个零配置的 RPC 框架,它能让你用一行代码实现 API 路由自动化。

你是否也曾被小程序云函数中那坨臃肿的 index.js 文件所困扰?

// 你是不是也写过这样的代码?
exports.main = async (event, context) => {
  switch (event.type) {
    case 'addUser':
      return await user.add(event.data);
    case 'getUserInfo':
      return await user.getInfo(event.data);
    case 'createOrder':
      return await order.create(event.data);
    case 'getOrderDetail':
      return await order.get(event.data);
    // ... 随着业务增加,这里会变得越来越长,难以维护
  }
}

每增加一个 API,就要在这里加一个 case;每次修改,都要小心翼翼。这种手动“路由”的方式,不仅繁琐、易错,而且毫无优雅可言。它只是胶水代码,粘合业务,却毫无美感。

我们受够了!

今天,向你隆重介绍 rpc-server-tcb —— 一个为小程序云开发设计的、零配置、约定优于配置的 RPC 服务端框架。它的使命只有一个:将你从 switch...case 的地狱中解放出来,让你专注于业务,而不是路由。

✨ 魔法是如何发生的?

rpc-server-tcb 的哲学是“约定优于配置”。我们约定,你的业务逻辑应该像这样组织:

cloudfunctions/
└── rpc/
    ├── api/                <-- 所有的业务逻辑,按模块划分
    |   ├── user.js         # 用户模块
    |   └── order.js        # 订单模块
    ├── index.js            <-- 你的云函数入口
    └── package.json

api/ 目录下,每一个 .js 文件都是一个独立的业务模块。例如,user.js 可能长这样:

api/user.js

module.exports = {
  /**
   * 根据 ID 获取用户信息
   * @param {string} userId - 用户ID
   */
  async getInfo(userId) {
    // ... 你的数据库查询逻辑
    return { id: userId, name: 'Alice', role: 'admin' };
  },

  /**
   * 获取当前调用者的 OpenID
   */
  getMyOpenId() {
    // 想要 event 和 context?没问题,通过 this 就能拿到!
    return this.event.userInfo.openId
  }
}

注意到了吗?这里只有纯粹的业务逻辑,干净、清晰。

那么,那个曾经臃肿的入口文件 index.js 现在需要写什么呢?

答案是:只需要一行核心代码。

index.js

const { createRpcServer } = require('rpc-server-tcb');

// 是的,就这么简单。它会自动加载 api 目录下的所有模块。
exports.main = createRpcServer();

当你部署这个云函数后,rpc-server-tcb 会自动帮你完成所有路由工作。一个指向 user 模块 getInfo 方法的请求,会被精准地分发到 api/user.jsgetInfo 函数,并将参数完美传递。

🚀 你将获得什么?

  1. 极致的简洁: 云函数入口只有一行代码,彻底告别胶水逻辑。
  2. 清晰的模块化: 业务按文件天然隔离,高内聚、低耦合,维护性 MAX!
  3. 优雅的上下文注入: 无需污染函数签名,通过 this.eventthis.context 即可访问原始上下文,干净利落。
  4. 零配置与热更新: 默认工作,无需配置。开发时修改 api/ 下的代码,热更新立即生效,极大提升开发效率。

立即开始

在你的云函数目录下,安装它:

npm install rpc-server-tcb

然后,用我们上面展示的一行代码,重构你的 index.js 吧!把时间还给业务,把优雅还给代码。

但这还只是故事的一半。 有了如此清爽的服务端,我们如何才能在小程序端以同样优雅的方式调用它呢?

敬请期待本系列第二篇文章:《魔法降临!让小程序调用云函数如丝般顺滑》,我们将为你揭晓 rpc-client-tcb 的神秘面纱。

NPM 地址: https://www.npmjs.com/package/rpc-server-tcb
小程序示例片段: https://developers.weixin.qq.com/s/BlGqopmS8B45

最后一次编辑于  11-04  
点赞 0
收藏
评论
登录 后发表内容