Запрос GraphQL в Node.js возвращает ошибку AWS CloudWatch "Невозможно импортировать модуль 'index'" - PullRequest
1 голос
/ 07 июня 2019

Ниже приведен запрос GraphQL на основе этого урока и шаблон Alexa NodeJS HelloWorld .После запуска имени вызова Alexa возвращает сообщение «Возникла проблема с ответом на запрошенный навык».Навык custom + Alexa размещен .

AWS CloudWatch Log:

START RequestId: 1992effc-ec02-42fc-bd5f-22df89b16598 Version: 13
Unable to import module 'index': Error
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/var/task/index.js:6:27)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
END RequestId: 1992effc-ec02-42fc-bd5f-22df89b16598

NodeJS Код:

 const Alexa = require('ask-sdk-core');
    const { GraphQLClient } = require('graphql-request');
    const GRAPHQL_ENDPOINT = 'https://api.graph.cool/simple/v1/cixos23120m0n0173veiiwrjr';
    const graphQLClient = new GraphQLClient(GRAPHQL_ENDPOINT, { })
    const helloWorldQuery = `
        {
          Movie(title: "Inception") {
            releaseDate
            actors {
              name
            }
          }
        }
      `

    const LaunchRequestHandler = {
      canHandle(handlerInput) {
        return handlerInput.requestEnvelope.request.type === 'LaunchRequest';
      },
      handle(handlerInput) {
        const speechText = 'Welcome to the Alexa Skills Kit, you can say hello!';

        return handlerInput.responseBuilder
          .speak(speechText)
          .reprompt(speechText)
          .withSimpleCard('Hello World', speechText)
          .getResponse();
      },
    };

    const HelloWorldIntentHandler = {
     canHandle(handlerInput) {
     return (
          handlerInput.requestEnvelope.request.type === 'IntentRequest' && handlerInput.requestEnvelope.request.intent.name === 'HelloWorldIntent'
        );
      },
     async handle(handlerInput) {
     const response = await graphQLClient.request(helloWorldQuery);

     const speechText = `Hello World ${response}`;

     return handlerInput.responseBuilder
     .speak(speechText)
     // .withSimpleCard('GraphQL Query', speechText)
          .getResponse();
      },
    };

Как исправить эту ошибку?

1 Ответ

0 голосов
/ 17 июня 2019

Я не уверен, в чем может быть проблема, я только что выполнил тест, и вы можете найти результаты здесь

Просто в качестве примера, это то, что я получаю из запроса:

2019-06-16T21: 48: 05.702Z e45cf19c-daf9-4aa8-90ef-d7e827655d21 INFO Query Result = {"Movie": {"releaseDate": "2010-08-28T20: 00: 00.000Z "," актеры ": [{" name ":" Leonardo DiCaprio "}, {" name ":" Ellen Page "}, {" name ":" Tom Hardy "}, {" name ":" Джозеф Гордон-Левитт "}, {" name ":" Marion Cotillard "}]}}

В качестве примера умения просто заставьте Алекса сказать, что фильм снят Леонардо Ди Каприо:

const speechText = The movie Inception is starred by ${response.Movie.actors[0].name};

Надеюсь, это поможет вам найти ошибку.

Не стесняйтесь копировать репозиторий github и создавать его оттуда.

...