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

如何仅在值非空时添加对象属性?优化Stripe客户创建逻辑

优化Stripe客户创建代码(简洁版)

你可以通过两种简洁方式避免重复代码,实现需求:

方法一:ES6+条件属性扩展

利用扩展运算符和短路求值,直接在metadata对象中动态添加属性:

async createStripeCustomer(user, refferal) {
  return stripe.customers.create({
    email: user.email,
    metadata: {
      userId: user.id,
      ...(refferal && { referral: refferal })
    }
  });
}

当refferal非空时,短路求值会返回{ referral: refferal },通过扩展运算符将其合并进metadata;若refferal为空,这部分会被忽略,metadata仅保留userId。

方法二:先构建metadata对象

先初始化基础metadata,再根据条件添加属性,逻辑更直观:

async createStripeCustomer(user, refferal) {
  const metadata = { userId: user.id };
  if (refferal) {
    metadata.referral = refferal;
  }
  return stripe.customers.create({
    email: user.email,
    metadata
  });
}

这种写法无需依赖ES6语法,兼容性更好,同时消除了重复的stripe.customers.create调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:31:10