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

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

javascript 复制代码
// 你是不是也写过这样的代码?
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 的哲学是"约定优于配置"。我们约定,你的业务逻辑应该像这样组织:

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

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

api/user.js

javascript 复制代码
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

javascript 复制代码
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/ 下的代码,热更新立即生效,极大提升开发效率。

立即开始

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

bash 复制代码
npm install rpc-server-tcb

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

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

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

NPM 地址 : www.npmjs.com/package/rpc...

小程序示例片段 : developers.weixin.qq.com/s/BlGqopmS8...

相关推荐
谢尔登10 分钟前
10_从 React Hooks 本质看 useState
前端·ubuntu·react.js
辰同学ovo12 分钟前
从全局登录状态管理学习 Redux
前端·javascript·学习·react.js
陈随易33 分钟前
2年没用Nodejs了,Bun很香
前端·后端·程序员
donecoding1 小时前
Corepack 完全解析:从懵到懂,包管理器自由了
前端·node.js·前端工程化
yqcoder1 小时前
端经典面试题:为什么 0.1 + 0.2 !== 0.3?
前端·css
ZC跨境爬虫1 小时前
跟着 MDN 学 HTML day_12:(HTML网页图片嵌入)
前端·javascript·css·ui·html
光影少年1 小时前
reeact虚拟DOM、Diff算法原理、key的作用与为什么不能用index
前端·react.js·掘金·金石计划
用户059540174461 小时前
大模型记忆存储踩坑实录:LangChain 的 ConversationBufferMemory 让我排查了 6 小时
前端·css
是上好佳佳佳呀1 小时前
【前端(十二)】JavaScript 函数与对象笔记
前端·javascript·笔记
你真的快乐吗1 小时前
@fuxishi/svg-icon:一个 Vue 3 svg本地图标+iconify图标组件库,让图标管理不再头疼
前端·vue.js·typescript