Как получить правильные данные API для углового приложения? - PullRequest
0 голосов
/ 23 мая 2019

Я создал службу API с nodejs, express и mongodb.Он работает правильно, когда я тестирую его с почтальоном и даже в браузере.Однако, когда я пытаюсь сделать то же самое из углового приложения, он дает странный ответ.

Это запрос на получение, который я сделал от почтальона: enter image description here

Угловой код для службы API:

url = 'http://localhost:3000';
getList() {
  return this.http.get(this.url);
}

Когда я делаю следующее в app.component.ts

console.log(JSON.stringify(this.taskapi.getList()));

, это то, что я вижу в консоли:

{"_isScalar":false,"source":{"_isScalar":false,"source":{"_isScalar":false,"source":{"_isScalar":true,"value":{"url":"http://localhost:3000","body":null,"reportProgress":false,"withCredentials":false,"responseType":"json","method":"GET","headers":{"normalizedNames":{},"lazyUpdate":null,"headers":{}},"params":{"updates":null,"cloneFrom":null,"encoder":{},"map":null},"urlWithParams":"http://localhost:3000"}},"operator":{"concurrent":1}},"operator":{}},"operator":{}}

Я хочу такой же отклик в англ., Как и у почтальона.Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 23 мая 2019

Вы должны подписаться на наблюдаемое, чтобы получить результат.Наблюдаемые являются Ленивыми, если вы не подписываетесь, это не будет инициировать вызов

    getList() {
      return this.http.get(this.url);
    }
    list:any;
    this.taskapi.getList().subscribe((response)=>{
         this.list = response;
        //here you will get the response
    });

Также вы можете использовать угловую асинхронную трубу, которая будет автоматически подписываться и отписываться для вас

    <div *ngFor='let item of yourObservableList | async'>

    </div>
0 голосов
/ 23 мая 2019

Ваша функция getList () возвращает Observable, вот что this.http.get возвращает.

Просто подпишитесь на Observable и распечатайте ответ, например, так:

this.taskapi.getList().subscribe(
  res =>
  {
    console.log(res);
  },
  err =>
  {
    /*Error handling*/
  }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...