如何解决Node.js中‘S3Client is not a constructor’错误?
解决
S3Client is not a constructor错误 问题根源
- 你直接通过
require('@aws-sdk/client-s3')获取的是整个模块对象,而非S3Client构造函数本身; - 代码中
region参数存在语法错误(多了一个多余的反引号)。
修复方案
1. 正确解构获取S3Client
AWS SDK v3的CommonJS导出为包含命名成员的对象,需通过解构赋值提取S3Client:
const { S3Client } = require('@aws-sdk/client-s3');
2. 修正region参数的语法错误
移除us-east-1末尾的多余反引号:
region: 'us-east-1',
修复后的完整代码
const { S3Client } = require('@aws-sdk/client-s3'); const s3 = new S3Client({ region: 'us-east-1', credentials: { accessKeyId: 'test', secretAccessKey: 'test' } });
内容的提问来源于stack exchange,提问作者Lester Gray
相关产品推荐
相关产品推荐

