NodeJS: сервис должен быть построен с оператором `new` - PullRequest
0 голосов
/ 08 мая 2018

c Я пытаюсь создать класс с 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'})

Я в недоумении от того, что мне не хватает ...

1 Ответ

0 голосов
/ 08 мая 2018

Жалуется, потому что вы пытаетесь создать экземпляр службы без new в вас switch. Например:

conn = aws.DYNAMODB(config)

должно быть:

conn = new aws.DynamoDB(config)

это, конечно, предполагает, что где-то вы позвонили:

var aws = require('aws-sdk');
...