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

如何根据变量取值动态配置选择web-hook的请求端点

实现方案

这个需求完全可以实现,你当前代码的问题是端点选择函数没有实际返回值,且请求逻辑执行顺序不对:你先写死了post_options的path参数直接发起请求,后续写的选择逻辑完全没有被调用到。

调整步骤

  • 给whichHookToSendTo函数补充返回值逻辑,根据入参返回对应的endpoint路径
  • 调整执行顺序:先根据NumOfClassesBooked的取值拿到对应路径,再构造post_options发起请求

修改后完整代码

// 选择端点的函数,根据入参返回对应路径
function whichHookToSendTo(NumOfClassesBooked) {
    if (NumOfClassesBooked === "1") {
        return '/fc6d1598-xxxx-xxxx'; // 替换成1节课对应的webhook路径
    } else if (NumOfClassesBooked === "4") {
        return '/a23d7812-xxxx-xxxx'; // 替换成4节课对应的webhook路径
    } else if (NumOfClassesBooked === "8") {
        return '/b89c2456-xxxx-xxxx'; // 替换成8节课对应的webhook路径
    }
    // 可补充默认情况返回值,避免匹配不到时出现异常
    return '/默认兜底路径';
}

// 先拿到对应path再构造请求参数
const targetPath = whichHookToSendTo(NumOfClassesBooked); // 传入实际的NumOfClassesBooked变量值
var post_options = {
    hostname: 'webhook.site',
    path: targetPath, // 替换为动态拿到的路径
    method: 'POST',
    headers: {
        'Content-Type': 'text/json'
    }
};    

// 发起请求逻辑
var post_req = https.request(post_options, function(res) {
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        console.log('Response: ' + chunk);
    });
});

post_req.write(post_data);
post_req.end();

补充说明

如果三个端点的域名也不一样,只需要把whichHookToSendTo的返回值改成同时返回hostname和path的对象,构造post_options的时候分别取值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:54:03