Undefined не является конструктором: AWS.Comprehend, aws JavaScript SDK - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь использовать Amazon Comprehend API через JavaScript JavaScript SDK. Но я всегда получаю

Uncaught (в обещании): TypeError: undefined не является конструктором (оценивая новый AWS.Comprehend ...

«Что я делаю не так? Большое вам спасибо.

Все другие услуги, например Полли и Rekognition работают хорошо.

 import * as AWS from 'aws-sdk';

 ....

 getTextAnalysis(textToAnalyze) {

   let awsCredentials = new AWS.Credentials("XXXXXXXXXXX", "XXXXXXXXX");
   let settings = {
       awsCredentials: awsCredentials,
       awsRegion: "us-west-2"
   }

   AWS.config.credentials = settings.awsCredentials;
   AWS.config.region = settings.awsRegion;

   let sentimentAnalysis = new Promise(function (successCallback, errorCallback) {
     var comprehend = new AWS.Comprehend({apiVersion: '2017-11-27'});
     var params = {
          LanguageCode: 'en',
          Text: textToAnalyze
        }

     comprehend.detectSentiment(params, function (error, data) {
         if (error) {
             errorCallback(error)
         } else {
             console.log('comprehend: ' + JSON.stringify(data))
             successCallback(data)
         }
     });

 });

 return sentimentAnalysis;

 }

1 Ответ

0 голосов
/ 12 декабря 2018

Я только что столкнулся с этой проблемой. Я предполагаю, что вы уже решили это, но только для общественного форума ...

По словам одного из авторов (https://github.com/aws/aws-sdk-js/issues/2417#issuecomment-446001911) Comprehend и Comprehend Medical не экспортируются в основной пакет SDK. Вы должны импортировать его напрямую, например так:

import Comprehend from 'aws-sdk/clients/comprehend';

const comprehend = new Comprehend();

или для commonjs

const Comprehend = require('aws-sdk/clients/comprehend');

var comprehend = new Comprehend();
...