Модуль не найден: невозможно разрешить readline - PullRequest
0 голосов
/ 12 июня 2019

Я испытываю ошибку Module not found: Can't resolve 'readline' для пакета NPM, который установлен и, по-видимому, присутствует в папке node_modules.Место ошибки:

Place of the error

module "c:/Users/ts-lord/Desktop/server/cdr-ui/node_modules/athena-express/lib/index"
Could not find a declaration file for module 'athena-express'. 'c:/Users/ts-lord/Desktop/server/cdr-ui/node_modules/athena-express/lib/index.js' implicitly has an 'any' type.
  Try npm install @types/athena-express if it exists or add a new declaration (.d.ts) file containing declare module athena-express';ts(7016) 

Попытка импорта и требует модуль, но все еще с той же ошибкой.Используется "создать приложение реакции", чтобы создать приложение реакции.Также перепробовал все выше.Ниже код пытается запрос s3 с Афиной.

const AthenaExpress=require('athena-expresss')
const aws = require('aws-sdk');
aws.config.update(awsCredentials);

        const athenaExpressConfig = {
          aws,
          s3: "s3://result-bucket-cdr/",
          getStats: true
        };

        const athenaExpress = new AthenaExpress(athenaExpressConfig);


        (async () => {
          let query = {
            sql: "SELECT * from result",
            db: "default",
            getStats: true 
          };

          try {
            let results = await athenaExpress.query(query);
            console.log(results);
          } catch (error) {
            console.log(error);
          }
        })();
      };

Ожидается, что работает без ошибок, но есть ошибка

1 Ответ

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

Проблема с readline может быть решена с помощью npm при установке readline.Похоже, что это общая проблема с create-реагировать-приложение.Главным образом потому, что create-реакции-приложение предназначено для браузерных интерфейсных приложений, а athena-express - это промежуточное ПО, которое может подключить ваш интерфейс к Amazon Athena.Если приложение athena-express установлено на внешнем интерфейсе, в конечном итоге будет отображаться объект aws, который содержит ваш секретный ключ и ключ доступа.

Лучше всего создать простое приложение node.js в качестве промежуточного программного обеспечения (автономное приложение иликак AWS Lambda) для инициализации athena-express с объектом aws, чтобы ваши учетные данные были в безопасности.Затем вы можете вызвать athena-express как API из вашего приложения реакции браузера.

...