Прежде всего я прочитал:
вопрос 1 относительно процесса не определен
вопрос 2 относительно процесса не определен
И никакая из представленной информации не помогла. Я использую 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 нет, извините. Я просто попробовал использовать модуль http в Angular.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Обновление клиента эластичного поиска до версии 15.1.1 решило аналогичную проблему.
"elasticsearch": "^15.1.1",
Пожалуйста, попробуйте это.
привет, я попробую это (даже подумал, что не буду пробовать новые решения, потому что, как я уже сказал, я перешел к другим решениям), и это не сработало.
Мы обнаружили, что последнее решение в эта ветка сработало для нас:
Конкретно:
npm i -S process, then add this to polyfill.ts:
import * as process from 'process';
window['process'] = process;
Я получил то же самое, получил ли ты какие-нибудь ответы.