Создание API-сервера для примера Angular Tour of Heroes - PullRequest
0 голосов
/ 30 октября 2018

Я пишу сервер API для примера Angular tour of heroes, используя nodejs, express и mongoose. Но не удается отобразить результат на веб-странице.

Вот шаг: 1. Я комментирую HttpClientInMemoryWebApiModule и InMemoryDataService в app.module.ts

Угловой код, который запрашивают герои:

getHeroes(): Observable<Hero[]> {
// TODO: send the message _after_ fetching the heroes
this.messageService.add('HeroService: fetched heroes');
//return of(HEROES);   Use RxJs of()
return this.http.get<Hero[]>(this.heroesUrl)   // Use HttpClient
   .pipe(
     tap(heroes => this.log('fetched heroes')),
     catchError(this.handleError('getHeroes', []))
   );
}

HeroesUrl - это:

private heroesUrl = 'http://localhost:3000/api/heroes';

Я изменяю hero.ts на:

export class Hero {
_id: string;
name: string;
__v: number;
}

Код API сервера для получения героев:

app.get('/api/heroes', function (req, res) {
console.log("Access get /api/heroes")

// Check name parameter
var heroName = req.query.name;
if (!heroName) {
    // get Hero from Mongoose
    Hero.find(function (err, hero) {
    if (err) return console.error(err);
    console.log(hero);
    //res.send(hero);
    res.json(hero);
  })
} else {
    // Find hero by name
    Hero.find( { 'name' : { '$regex' : heroName, '$options' : 'i' } }, function (err,hero) {
        if (err) return console.error(err);
        console.log(hero);
        //res.send(heroName);
        res.json(hero);
    })
    //res.send(heroName);
}
})

Таким образом, если герой найден в базе данных, сервер API отправит обратно всех героев в формате JSON.

Проблема в том, что все отправленные герои не отображаются в модуле heroes.component. В чем проблема? Как я могу узнать, где проблема?

Я подтвердил, что сервер API использует Insomnia для создания запроса клиента к серверу, и подтвердил, что ответ находится в Json, как показано ниже:

[
{
    "_id": "5bd6f24bbe204f39a0c0c3d4",
    "name": "Monikart",
    "__v": 0
},
{
    "_id": "5bd7f5bbe03a2f2fe00d1fa9",
    "name": "Conetto",
    "__v": 0
},
{
    "_id": "5bd7f7f4c418b5169c34c431",
    "name": "Mosala",
    "__v": 0
},
{
    "_id": "5bd806ef9d47cc435c5ce6b6",
    "name": "Josheppine",
    "__v": 0
},
{
    "_id": "5bd80ba16e7f950158dc4af7",
    "name": "Hanoman",
    "__v": 0
}
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...