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

调用Mixer API获取频道数据时遇Beam非构造函数错误求助

解决Mixer API开发中“Beam is not a constructor”错误

我之前也碰到过一模一样的问题!你遇到的核心问题是beam-client-node包的导入方式不对,另外代码里还有个小坑会导致页面无法正常渲染,我给你一步步理清楚:

问题根源

你写的const Beam = require('beam-client-node');是错误的——这个包并没有把客户端构造函数作为默认导出,而是把BeamClient放在了导出对象里。直接用new Beam()自然会报错说它不是构造函数。另外,你的路由处理函数里,return beam.request(...)之后的res.render('home');永远不会执行,因为return已经提前终止了函数,客户端会一直等不到响应。

修正方案

  1. 调整导入方式:从包的导出对象中解构出BeamClient
  2. 修复异步逻辑:把页面渲染放在API请求成功之后,同时加上错误捕获避免服务器崩溃

修正后的完整代码

'use strict';
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const path = require("path");
// 正确导入BeamClient构造函数
const { BeamClient } = require('beam-client-node');
const ejs = require("ejs");
// 实例化客户端
const beam = new BeamClient();

app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, '/public')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

// 用async/await简化异步代码,可读性更高
app.get('/channel', async (req, res) => {
  try {
    // 发起API请求获取频道数据
    const apiResponse = await beam.request('GET', 'channels/PootsTheCat');
    const totalViewers = apiResponse.body.viewersTotal;
    console.log(`该频道累计观看人数:${totalViewers}`);
    
    // 请求成功后渲染页面,还可以把数据传给EJS模板
    res.render('home', { totalViewers });
  } catch (error) {
    // 捕获并处理API请求错误
    console.error('获取频道数据失败:', error);
    res.status(500).send('获取频道信息时出现错误');
  }
});

app.listen(3000);
console.log('服务器运行在端口3000...');

可选的Promise链式调用写法

如果你更习惯用Promise链式调用,也可以改成这样:

app.get('/channel', (req, res) => {
  beam.request('GET', 'channels/PootsTheCat')
    .then(apiResponse => {
      const totalViewers = apiResponse.body.viewersTotal;
      console.log(`该频道累计观看人数:${totalViewers}`);
      res.render('home', { totalViewers });
    })
    .catch(error => {
      console.error('获取频道数据失败:', error);
      res.status(500).send('获取频道信息时出现错误');
    });
});

这样能保证只有API请求成功后才会渲染页面,同时错误也能被及时捕获处理,不会让服务器意外崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:55:38