Javascript 如何存储JSON对象或其特定值以供进一步使用(角度)?我唯一能做的就是把它们记录下来
我正在使用elasticsearch,以便根据从传感器板收集的数据,使用kibana创建一些可视化,但是我需要在Angular 9应用程序中使用这些数据。我使用弹性api来获取数据,我唯一能做的就是记录它们,但我不能存储它们以供进一步使用。我用python做了同样的尝试,效果很好。我用Angular做了什么错事 “这是代码” “这是我在运行代码后在控制台中看到的”Javascript 如何存储JSON对象或其特定值以供进一步使用(角度)?我唯一能做的就是把它们记录下来,javascript,node.js,angular,typescript,
elasticsearch,Javascript,Node.js,Angular,Typescript,
elasticsearch,我正在使用elasticsearch,以便根据从传感器板收集的数据,使用kibana创建一些可视化,但是我需要在Angular 9应用程序中使用这些数据。我使用弹性api来获取数据,我唯一能做的就是记录它们,但我不能存储它们以供进一步使用。我用python做了同样的尝试,效果很好。我用Angular做了什么错事 “这是代码” “这是我在运行代码后在控制台中看到的” 您可以将弹性搜索调用包装在相应服务类中的承诺中,并绑定到视图组件中的结果。类似这样的内容(仍然需要错误处理): 导出接口Elasti
您可以将弹性搜索调用包装在相应服务类中的承诺中,并绑定到视图组件中的结果。类似这样的内容(仍然需要错误处理):
导出接口ElasticSearchParam{
id:字符串;
索引:字符串;
_资料来源:字符串;
}
//服务
@可注射()
导出类ElasticSarchService{
搜索(searchObj:ElasticSearchParam){
返回新承诺((解决、拒绝)=>{
es.getSource(searchObj,(错误,响应)=>{
如果(错误){
拒绝(错误);
}否则{
决心(回应);
}
});
});
}
}
//您的视图组件
@组成部分({
选择器:“应用程序”,
模板:`…卷是:{{roll}..`
})
对组件进行分类{
private roll:any;//要从elasticSearch结果中使用的实际数据
构造函数(私有elasticSearchService:ElasticSarchService){}
异步数据搜索(术语:字符串){
const elasticSearchResult=等待this.elasticSearchService.search({
id:“1”,
索引:“acc_传感器”,
_资料来源:“真实”
});
this.roll=elasticSearchResult.roll;//或者您想对响应做什么
}
}
es.getSource({id: "1", index:"acc_sensor", _source:"true"},
function(error,response){
if(error){
console.log("search error: "+error);
}
else{
console.log("---Response---");
console.log(response);
console.log("---particular value---")
this.roll = response['roll'];
console.log(this.roll);
}});
export interface ElasticSearchParam {
id: string;
index: string;
_source: string;
}
// Service
@ Injectable()
export class ElasticSarchService {
search(searchObj: ElasticSearchParam) {
return new Promise( (resolve, reject) => {
es.getSource(searchObj, (error, response) => {
if (error) {
reject(error);
} else {
resolve(response);
}
});
});
}
}
// your view component
@Component({
selector: "app",
template: `...<p>The roll is: {{roll}}</p>...`
})
class YourComponent {
private roll: any; // the actual data you want to use from the elasticSearch result
constructor(private elasticSearchService: ElasticSarchService) {}
async doSearch(term: string) {
const elasticSearchResult = await this.elasticSearchService.search({
id: "1",
index: "acc_sensor",
_source: "true"
});
this.roll = elasticSearchResult.roll; // or whatver you'd like to do with the response
}
}