Angular 6 ERROR ReferenceError: «процесс не определен» с elasticsearch js

Прежде всего я прочитал:

вопрос 1 относительно процесса не определен

вопрос 2 относительно процесса не определен

угловой 5 вопрос

информация о сборке браузера

И никакая из представленной информации не помогла. Я использую Angular 6 и хочу отправить запрос в elasticsearch, используя elasticsearch js. Я установил elasticsearch, эластичные типы и эластичный браузер следующим образом:

npm install elasticsearch
npm install @types/elasticsearch
npm install elasticsearch-browser

Я попытался установить с --save, с --save-dev и без, но безрезультатно.

Затем я создал новый проект с angular cli:

import { Component } from '@angular/core';
import { Client } from "elasticsearch";

@Component({
  selector: 'app-root',
  template: `
<script src = "/node_modules/elasticsearch/src/elasticsearch.js"></script>
  <div class = "container">
  <div class = "row">
      <button type = "" (click) = "onSendElastic()">Click Me!</button>
  </div>
</div>`,
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  elClient: Client

  onSendElastic(){
    console.info('clicked on send elstic');
    this.connect()
    let res = this.elSearch()
    console.info(`res: ${res}`);

  }

  connect(){
    console.info('start connect...');

    this.elClient = new Client({
      host:"http://elasticIp:9200",
      log:"trace"
    })
    this.elClient.ping({
      requestTimeout:2000
    },(err)=>{
      if (err){
        console.info('err');
      }
      else{
        console.info('everything is ok');

      }
    })
  }

  elSearch(){
    console.info('start search...');

    return this.elClient.search({
      index:"elastic_index",
      type:"doc",
      body:{
        "query":{
          "term":{
            "field1":"true"
          }
        }
      }
    })
  }
}

Я добавил тег <script>, потому что в некоторых найденных мной ответах предполагалось, что это не помогло.

Формат взят из: https://www.npmjs.com/package/elasticsearch. Когда я запускаю проект, запустив ng start или npm start, когда я нажимаю кнопку, я получаю:

clicked on send elstic; start connect... ERROR ReferenceError: "process is not defined" addOutputhttp://localhost:4200/vendor.js:100911:7Loghttp://localhost:4200/vendor.js:100749:5Transporthttp://localhost:4200/vendor.js:101610:27EsApiClienthttp://localhost:4200/vendor.js:99098:22Clienthttp://localhost:4200/vendor.js:99141:10connecthttp://localhost:4200/main.js:104:25onSendElastichttp://localhost:4200/main.js:98:9View_AppComponent_0ng:///AppModule/AppComponent.ngfactory.js:14:23handleEventhttp://localhost:4200/vendor.js:39410:16callWithDebugContexthttp://localhost:4200/vendor.js:40503:22debugHandleEventhttp://localhost:4200/vendor.js:40206:12dispatchEventhttp://localhost:4200/vendor.js:36869:16renderEventHandlerClosurehttp://localhost:4200/vendor.js:37313:38decoratePreventDefaulthttp://localhost:4200/vendor.js:47314:36invokeTaskhttp://localhost:4200/polyfills.js:2743:17onInvokeTaskhttp://localhost:4200/vendor.js:33108:24invokeTaskhttp://localhost:4200/polyfills.js:2742:17runTaskhttp://localhost:4200/polyfills.js:2510:28invokeTaskhttp://localhost:4200/polyfills.js:2818:24invokeTaskhttp://localhost:4200/polyfills.js:3862:9globalZoneAwareCallbackhttp://localhost:4200/polyfills.js:3888:17

Я нашел ссылку на использование браузера elasticsearch, но его установка, похоже, ничего не дает. Информация на странице браузера ссылается на angularjs, а не на angular 2, поэтому я застрял.

Почему возникает эта ошибка? Как это решить?

Я получил то же самое, получил ли ты какие-нибудь ответы.

MPPNBD 20.07.2018 18:22

@MPPNBD нет, извините. Я просто попробовал использовать модуль http в Angular.

yishain11 31.07.2018 11:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
7
2
7 476
2

Ответы 2

Обновление клиента эластичного поиска до версии 15.1.1 решило аналогичную проблему.

"elasticsearch": "^15.1.1",

Пожалуйста, попробуйте это.

привет, я попробую это (даже подумал, что не буду пробовать новые решения, потому что, как я уже сказал, я перешел к другим решениям), и это не сработало.

yishain11 01.08.2018 10:36

Мы обнаружили, что последнее решение в эта ветка сработало для нас:

Конкретно:

 npm i -S process, then add this to polyfill.ts:
 import * as process from 'process';
 window['process'] = process;

Другие вопросы по теме