从Eventbrite API获取事件的问题

时间:2019-03-15 04:20:47

标签: node.js angular eventbrite

我正在使用angular js和node js作为后端来构建学校项目,我试图使用EventBrite中的Angular JS在前端显示事件,花了几个小时检查了不同的教程后,我写了这个代码

Node JS代码:

router.get('/', (req, res)=>{

  axios.get(`${EventsBriteAPI}`).then(result=>{
    let relevantData = result.data.data.events
    res.status(200).json(relevantData);
    console.log(results );
  })

  .catch(error => {
    res.status(500).send(error);
  })
});

我的服务代码:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';


@Injectable({
  providedIn: 'root'
})


export class EventsService {

  uri = 'http://localhost:4600/events';

  constructor(private httpClient: HttpClient) {}


  getAllEvents(){
    return this.httpClient.get(this.uri);
  }

}

我的组件代码

import { Component } from '@angular/core';
import { EventsService } from './events.service';
import { Observable } from 'rxjs/internal/Observable';

@Component({
   selector: 'events',
   templateUrl: 'events.Component.html'
})
export class EventsComponent {
  title = "List of events";
  eventObservable : Observable<any[]> ;
  
  constructor(service: EventsService){


    this.eventObservable = service.getAllEvents();


    console.log(this.eventObservable);


  }


}

运行代码时出现此错误 src / app / component / events / events.component.ts(21,5):错误TS2322:无法将类型“可观察”分配给类型“可观察”。   “对象”类型可分配给很少的其他类型。您的意思是改用“ any”类型吗?     类型“ Object”缺少类型“ any []”中的以下属性:length,pop,push,concat和26个以上属性。而且在我的前端没有显示任何内容

您能帮我吗?

1 个答案:

答案 0 :(得分:0)

除非您使用async管道或有任何特定要求,否则我们不需要使用 Observable 类型变量。

您可以执行以下操作

  

EventsComponent.ts

 eventObservable: any = [];

 constructor(private service: EventsService) {
    this.service.getAllEvents().subscribe((response: any) =>{
        this.eventObservable = response;
        console.log(this.eventObservable);
    });
 }

我们通常使用 ngOnInit() 来调用不在constructor()中的api数据。