You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js环境下基于用户角色动态调用函数的精简实现方案咨询

解决方案

核心思路是通过角色-处理函数映射表消除冗余的if分支判断,只需要提前构造一次映射关系,后续调用逻辑可简化为1行代码。

步骤1:构造角色处理映射表

// 把ROLE枚举值作为键,对应处理函数作为值
const roleHandlerMap = {
  [ROLE.REFERRINGPROVIDER]: referralUser,
  [ROLE.CONSULTINGPROVIDER]: consultingUser,
  [ROLE.PARENT]: parentUser,
  [ROLE.PHYSICIAN]: physicianUser
}

步骤2:1行完成动态调用

直接通过用户角色code从映射表取对应函数执行即可,兼容原有的入参和async/await逻辑:

query = await roleHandlerMap[userRole.code](tabCode, userId, query)

可选优化(异常兼容)

如果存在未配置的角色,可加默认空处理避免报错:

// 不存在对应处理函数时返回原query,可根据业务需求调整默认逻辑
query = await (roleHandlerMap[userRole.code]?.(tabCode, userId, query) ?? query)

内容的提问来源于stack exchange,提问作者Priyanka Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:57:04