Угловой сервисный метод возвращает 200 кода из серверной части, но выдает ошибки - PullRequest
0 голосов
/ 13 декабря 2018

Я работаю с API, который работает следующим образом ... Чтобы извлечь данные из серверной части, вы отправляете запрос POST и передаете ему reqType='fetch' вместе с оператором SQL, например так ...

{
  reqType: 'fetch',
  test: 'SELECT * FROM table_name'
}

В моей базе данных есть две таблицы: одна называется местоположением, а другая - странами, где каждое местоположение принадлежит какой-либо стране.Таблица местоположения ссылается через внешний ключ, название страны которого установлено на UNIQUE.Очевидно, я упрощаю это.

Затем у меня есть служба, которая пытается извлечь все местоположения из таблицы в зависимости от того, к какой стране они принадлежат, так что ...

  public fetchLocations(country) {
    return this.http.post<MyModel>(this.myUrl, {
      reqType: 'fetch',
      test: `SELECT * FROM locations WHERE fk_country='${country}'`
    }).pipe(
      retry(3),
      catchError(this.handleError)
    );
  }

Внутри моего клиента, Я обращаюсь к определенному представлению по URL, который выглядит следующим образом ...

/section/:countryName/:packageId

В моем файле component.ts я импортировал ActivatedRoute и ParamMap из '@angular/router, и язатем захватывает значения этих параметров внутри ngOnInit() примерно так ...

this.activeRoute.paramMap.subscribe((params: ParamMap) => {
  this.packageId = params.get('packageId');
  this.country = params.get('countryName');
});

packageId ссылается на идентификатор другой таблицы, в которой хранится множество других вещей, включая locationId.Пакеты также относятся к определенной стране.Таким образом, я извлекаю пакеты из базы данных и извлекаю locationId из их возвращенного результата, который я затем хочу использовать для фильтрации списка местоположений, возвращаемых в зависимости от страны.Это все отлично работает.Параметры успешно сохраняются.
Использование JOINS для меня не вариант по причинам, по которым я не могу войти.

Вернуться к файлу component.ts ...
Я ввел свойСлужба успешно, и в моем компоненте у меня есть метод, который вызывает метод службы fetchLocations(country), чтобы попытаться вернуть соответствующие местоположения ...

private getLocations(country) {
  return this.myService.fetchLocations(country).subscribe(res => {
    this.locations = res;
  }
}

После того, как я получил параметры с URL, я тогдавызов метода внутри ngOnInit() и передача по стране.

this.getLocations(this.country);

Однако это возвращает ошибку ...

Backend returned code 200, body was [Object Object] 

The console log Чтоя делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...