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

Node.js使用Square API时出现TypeError: Client is not a constructor

解决Square SDK初始化报错“TypeError: Client is not a constructor”

问题重现

按照Square开发者官网示例代码初始化客户端,仅将环境参数替换为process.env.SQUARE_ENVIRONMENT,但持续报错:

TypeError: Client is not a constructor

预期成功创建Square客户端实例。

可能的原因及解决方法

1. Square SDK版本不兼容

Square SDK v3及以上版本的导出结构发生了变化,CommonJS环境下需要注意default导出:

  • 调整导入方式,显式获取default导出:
    require('dotenv').config();
    const { Client, Environment } = require('square').default;
    
    const env = process.env.SQUARE_ENVIRONMENT;
    const environment = env === 'production' ? Environment.Production : Environment.Sandbox;
    
    const client = new Client({
        bearerAuthCredentials: {
            accessToken: process.env.SQUARE_ACCESS_TOKEN
        },
        environment: environment
    });
    
  • 或者通过完整模块引用:
    require('dotenv').config();
    const square = require('square');
    
    const env = process.env.SQUARE_ENVIRONMENT;
    const environment = env === 'production' ? square.Environment.Production : square.Environment.Sandbox;
    
    const client = new square.Client({
        bearerAuthCredentials: {
            accessToken: process.env.SQUARE_ACCESS_TOKEN
        },
        environment: environment
    });
    

2. 环境变量类型不匹配

process.env.SQUARE_ENVIRONMENT是字符串类型,而SDK要求传入Environment枚举值,直接赋值字符串可能引发初始化异常:

  • 先将字符串环境变量映射为SDK枚举值,再传入配置:
    const envStr = process.env.SQUARE_ENVIRONMENT;
    const targetEnv = envStr === 'production' ? Environment.Production : Environment.Sandbox;
    

3. 依赖安装或导入错误

  • 确认已正确安装Square SDK:
    npm install square
    
  • 检查导入语句拼写,确保是require('square')而非其他错误路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:04:58