我想写采用了棱角分明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