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

如何在包含数组的Object中为Error对象的Message字段传入动态值

正确实现方案

核心调整逻辑

你需要给错误模板预留动态占位符,同时改造错误码生成函数支持参数替换,修正原有代码中无返回值、查找逻辑不合理的问题即可实现需求。


具体代码实现

1. 全局错误模板配置(预留占位符)

// 全局错误配置,{prefix}为动态参数占位符
const serviceErrors = {
  errors: [
    { Code: 'Error1', Message: "{prefix} Missing stamp in the header" }
  ]
}

2. 改造ErrorCode函数

function ErrorCode(erCode, dynamicParams = {}) {
  // 用find替代filter,直接拿到匹配的单个错误模板,效率更高
  const errTemplate = serviceErrors.errors.find(er => er.Code === erCode);
  // 兜底处理未匹配到的错误码
  if (!errTemplate) return { Code: 'UnknownError', Message: '未定义的错误类型' };
  
  // 批量替换所有动态占位符
  let finalMessage = errTemplate.Message;
  Object.entries(dynamicParams).forEach(([key, value]) => {
    finalMessage = finalMessage.replaceAll(`{${key}}`, value);
  });

  // 返回处理完成的错误对象
  return { Code: errTemplate.Code, Message: finalMessage };
}

3. 调整校验逻辑,传入动态参数

function validateRequestHeaders(req) {
  const Error = { value: [] };
  return new Promise(function (resolve, reject) {
    const stamp = req.header("stamp")?.toLowerCase() || '';
    if(stamp !== 'dp'){
      // 传入动态值DP替换占位符
      Error.value.push(ErrorCode("Error1", { prefix: 'DP' }));
    }
    resolve(Error);
  })
}

实现后生成的错误对象Message字段就是你需要的'DP' Missing stamp in the header效果,该方案也支持同时传入多个动态参数替换多个占位符的场景。

内容的提问来源于stack exchange,提问作者Rajat Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:36:03