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

在Sails.js/Node.js中安装@braze/sdk-web并添加自定义事件报错求解

Sails.js/Node.js 环境下 @braze/sdk-web 集成与报错排查方案

正确安装与自定义事件实现

首先明确依赖适用场景:@braze/sdk-web为浏览器端专用SDK,仅可在前端运行环境下导入使用,若需在Sails服务端调用Braze能力,需安装服务端专用的@braze/node-sdk。

前端侧集成(使用@braze/sdk-web)

  • 安装依赖:在项目根目录执行命令
npm install @braze/sdk-web --save
  • 导入初始化:仅在Sails项目的前端资源文件(assets/目录下的JS文件、页面模板的前端脚本块)中导入SDK,禁止在服务端逻辑文件中导入
import * as braze from "@braze/sdk-web";
// 初始化配置
braze.initialize("你的Braze前端SDK密钥", {
  baseUrl: "对应Braze实例的服务地址",
  enableLogging: false
});
// 启动会话
braze.openSession();
  • 上报自定义事件
// 触发自定义事件时调用,可传入自定义属性
braze.logCustomEvent("自定义事件名称", {
  "action_source": "navigation_click",
  "user_level": 3
});

服务端侧集成(使用@braze/node-sdk)

  • 安装依赖
npm install @braze/node-sdk --save
  • 在服务端逻辑(控制器、服务、定时任务等)中初始化调用
const Braze = require('@braze/node-sdk');
// 初始化客户端
const brazeClient = new Braze({
  apiKey: '你的Braze REST API密钥',
  restUrl: '对应Braze实例的REST接口地址'
});
// 上报自定义事件
const trackResult = await brazeClient.users.track({
  events: [
    {
      external_id: '用户唯一标识ID',
      name: '自定义事件名称',
      time: new Date(),
      properties: {
        "order_amount": 199,
        "pay_channel": "alipay"
      }
    }
  ]
});

服务启动报错排查步骤

Sails服务启动崩溃自动重启,90%以上的场景是错误地在服务端执行的代码中导入了@braze/sdk-web,该包依赖浏览器端的window、document等全局对象,Node.js环境不存在相关对象,导入即会抛出未定义异常。可按以下步骤定位解决:

  • 全局搜索项目中所有import "@braze/sdk-web"、require("@braze/sdk-web")语句,确认导入位置是否为api/、config/等服务端运行的目录,若是直接删除该导入,替换为服务端专用的@braze/node-sdk即可。
  • 执行sails lift --verbose启动服务,查看控制台输出的详细错误栈,定位具体报错的文件和代码行,确认是否为SDK导入或初始化触发的异常。
  • 删除项目的node_modules目录和package-lock.json文件,重新执行npm install,排查依赖版本冲突导致的启动报错。
  • 检查config/bootstrap.js等启动时自动加载的配置文件,确认没有错误写入web版SDK的初始化逻辑。
  • 若使用自定义打包流程,检查打包配置是否将@braze/sdk-web打包到了服务端执行的代码 bundle 中,调整配置将该依赖仅纳入前端资源打包范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:54:06