Я новичок в создании приложения для электронной коммерции Angular с бэкендом в Node.js.Мне нужна страница с данными, которые обновляются в режиме реального времени.Я создал объект поведения для данных и создал службу следующим образом:
export class OrderService {
private orders: BehaviorSubject<any>;
public timeInSeconds = 10;
constructor(private http: Http) {
this.orders = new BehaviorSubject<any>(null);
setInterval(() => {
this.fetchOrders();
}, this.timeInSeconds * 1000);
this.fetchOrders();
}
private fetchOrders() {
this.http.get('/getorders').toPromise().then((resData) => {
this.orders.next(resData);
});
}
getOrders(): Observable<any> {
return this.orders;
}
}
Затем компонент вызывает эту функцию get:
getorders() {
this.getdata.getOrders()
.subscribe (res => {
this.orders = res.json();
});
}
Даже если ответ получен правильно,Я не могу извлечь данные из него, получаю ошибку "res is null".Я предполагаю, что я делаю что-то не так.Удаление парсинга json или вызов res.body тоже не помогают.Это зарегистрированный ответ:
Object { _body: "[{\"id\":2,\"date\":\"0000-00-00\",\"name\":\"Olga\",\"email\":\"email@mail.com\",\"address\":\"1 Street St.\",\"phone\":\"05454545454\",\"products\":\"[{\\\"id\\\":3,\\\"name\\\":\\\"שוקולד\\\",\\\"price\\\":10,\\\"img\\\":\\\"chocolate.jpg\\\",\\\"category\\\":\\\"sweets\\\",\\\"quantity\\\":4}]\"},{\"id\":3,\"date\":\"0000-00-00\",\"name\":\"o\",\"email\":\"email@mail.com\",\"address\":\"\",\"phone\":\"05454545454\",\"products\":\"[{\\\"id\\\":7,\\\"name\\\":\\\"עיתון\\\",\\\"price\\\":20,\\\"img\\\":\\\"newspaper.jpg\\\",\\\"category\\\":\\\"others\\\",\\\"quantity\\\":1}]\"}]", status: 200, ok: true, statusText: "OK", headers: {…}, type: 2, url: "http://localhost:8080/getorders" }
Любая помощь или совет будут оценены.