Я создал несколько функций, связанных с Observables в Angular2 для приложения, которое я разрабатывал. Но с тех пор я не использую Angular. Итак, мои рабочие функции, связанные с Observables, должны быть изменены соответствующим образом, чтобы стать функциональными в Angular8, и я не могу избавиться от некоторых сообщений об ошибках.
API с сервера возвращает массив объектов из базы данных:
router.get('/getEntries, (req, res, next) => {
db.get().collection('data').find().toArray((err, data) => { res.json(data); });
});
Возможно, проблема в entry.service.ts file:
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {Observable} from 'rxjs';
import {map} from 'rxjs/operators';
import {Entry} from '../Classes/entry';
@Injectable()
export class EntryService {
constructor(private http: HttpClient) { }
getEntries(): Observable<Entry[]> {
return this.http.get('http://192.168.1.3:3000/api/getEntries').pipe(map(res => res.json() as Entry[]));
}
} //end of Service
app.component.ts выглядит следующим образом:
import {Component, OnInit} from '@angular/core';
import {Entry} from '../Classes/entry';
import {EntryService} from '../Services/entry.service';
@Component({
selector : 'app-root',
templateUrl : './app.component.html',
styleUrls : ['./app.component.css']
})
export class AppComponent implements OnInit {
entries: Entry[];
constructor(private entryService: EntryService) { }
ngOnInit(): void {
this.entryService.getEntries().subscribe(data => {this.entries=data;}, err => {console.log(err);});
}
} //end of Component
Старая рабочая entry.service.ts *Файл 1019 * в Angular2 выглядит следующим образом:
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { Entry } from '../Classes/entry';
import 'rxjs/add/operator/map';
@Injectable()
export class EntryService {
constructor(private http: Http) { }
getEntries(): Observable<Entry[]> {
return this.http.get('http://192.168.1.3:3000/api/getEntries').map(res => res.json() as Entry[]);
}
} //end of Service
Теперь в Angular 8 функция .json () больше не существует. Как я могу настроить свой код в Angular 8, чтобы он работал?
Вообще говоря, является ли мой метод обработки http-запросов хорошей практикой или его можно реализовать лучше? Я не знаю Angular, поэтому я спрашиваю.
Заранее спасибо за потраченное время!