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

如何通过API获取dynamic_template_data而非硬编码(Node.js实现)

Node.js 从API获取dynamic_template_data替代硬编码实现

核心逻辑很简单:先通过API请求拿到数据库返回的动态数据,再将这个数据直接赋值给dynamic_template_data字段,替换掉硬编码的内容即可。下面是具体实现步骤和示例代码:

1. 编写API请求函数获取动态数据

你可以用Node.js内置的fetch(Node.js 18+支持)或者第三方库axios调用数据库API,拿到订单、用户等所需的动态数据:

// 用内置fetch的示例(Node.js 18+)
async function getDynamicTemplateData() {
  try {
    // 替换为你的数据库API地址
    const response = await fetch('https://your-api-domain/order-info');
    if (!response.ok) {
      throw new Error(`API请求失败: ${response.status}`);
    }
    // 解析返回的JSON数据,需和模板字段结构匹配
    const data = await response.json();
    return data;
  } catch (error) {
    console.error('获取动态数据出错:', error);
    throw error; // 抛出错误交由上层处理
  }
}

// 用axios的示例(需先执行npm install axios)
const axios = require('axios');
async function getDynamicTemplateData() {
  try {
    const response = await axios.get('https://your-api-domain/order-info');
    return response.data;
  } catch (error) {
    console.error('获取动态数据出错:', error);
    throw error;
  }
}

2. 整合到SendGrid邮件发送流程

调用上述函数拿到数据后,直接赋值给dynamic_template_data,再调用SendGrid的邮件发送接口:

const sgMail = require('@sendgrid/mail');
// 从环境变量读取API密钥,避免硬编码
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

async function sendDynamicEmail() {
  try {
    // 第一步:获取动态数据
    const dynamicData = await getDynamicTemplateData();

    // 第二步:构造邮件参数,用动态数据替换硬编码内容
    const msg = {
      to: 'user@example.com', // 收件人邮箱
      from: 'service@your-domain.com', // 已在SendGrid验证的发件人邮箱
      templateId: 'd-xxxxxxxxxxxxxx', // 你的动态模板ID
      dynamic_template_data: dynamicData // 直接使用API返回的动态数据
    };

    // 发送邮件
    await sgMail.send(msg);
    console.log('邮件发送成功');
  } catch (error) {
    console.error('邮件发送出错:', error.response?.body || error.message);
  }
}

// 执行邮件发送
sendDynamicEmail();

注意事项

  • 确保API返回的数据结构和SendGrid动态模板的字段完全匹配,比如模板中使用{{total}},API返回的数据就必须包含total字段。
  • 做好错误捕获,避免因API请求失败导致邮件发送流程异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 01:45:47