我想寫採用了棱角分明2和NPM官方elasticsearch.js客戶端Elasticsearch一個簡單的Web界面數據綁定。角2:使用Elasticsearch客戶
我創建了一個服務是這樣的:
import { Injectable } from '@angular/core';
import { Client } from 'elasticsearch';
@Injectable()
export class ElasticsearchService {
private _client: Client;
constructor() {
if (!this._client) {
this._connect();
}
};
private _connect() {
this._client = new Client({
host: 'http://my-elasticsearch-host:9200',
log: 'trace'
});
};
isAvailable(): PromiseLike<String> {
return this._client.ping({
requestTimeout: Infinity
});
}
}
這似乎很好地工作。記錄顯示我的請求被正確回答。
這裏是我的組件:
import { OnInit, Component } from '@angular/core';
import { ElasticsearchService } from './services/elasticsearch.service';
@Component({
selector: 'foo',
templateUrl: './foo.component.html',
providers: [ElasticsearchService]
})
export class TimeLineComponent implements OnInit {
private status: String = 'not ok';
constructor(private esService: ElasticsearchService) { } ;
ngOnInit(): void {
this.showStatus();
}
showStatus(): void {
this.esService.isAvailable()
.then(response => this.status = 'OK');
}
}
和這裏的模板:
status:{{status}}
我不明白爲什麼我的瀏覽器一直顯示 「不正常」。我在這裏錯過了什麼?
沒有你的供應商陣列中添加ElasticsearchService地方? –
它在我的app.module.ts中,並且我嘗試在我的組件中添加「提供程序:[ElasticsearchService]」(請參閱編輯) 仍然沒有運氣:( –
您的請求是否實際發出?是否有對請求的響應,或者是有錯誤? – ryanlutgen