0

c我正在尝试使用 with 创建一个类,aws-sdk我得到:

 Service must be constructed with `new` operator

这是代码:

Class AWS {
    // constructor omitted 

    connect({client='ecs'}={})
        {
          let config =
            {
              accessKeyId: this.aws_access_key,
              secretAccessKey: this.aws_secret_key,
              region: this.region
            };

          try {
            switch (client) {
              case 'dynamodb': conn = aws.DYNAMODB(config); break;
              case 'ec2':      conn = aws.EC2(config);      break;
              case 'ecs':      conn = aws.ECS(config);      break;
              case 'elb':      conn = aws.ELBv2(config);    break;
            }
            return conn;
          }
          catch(err)
          {
            console.log(err.message);
          }
        }
}

这就是我如何称呼它...

var a = new AWS(
    {
      cluster: 'my-cluster',
      environment: 'dev',
      project: 'proj1',
      region: 'us-east-2',
      service: 'api-feed-validation'
    });
a.connect({client:'ecs'})

我不知道我错过了什么......

4

1 回答 1

3

它在抱怨,因为您试图在没有new您的情况下实例化服务switch。例如:

conn = aws.DYNAMODB(config)

应该:

conn = new aws.DynamoDB(config)

这当然假设你在某个地方打电话:

var aws = require('aws-sdk');
于 2018-05-08T17:00:51.323 回答