Я работаю с 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]
Чтоя делаю не так?