我正在使用以以下方式工作的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
引用另一个表的ID,该表存储了包括locationId
在内的其他内容。包裹也属于特定国家/地区。因此,我要从数据库中获取软件包,并从返回的结果中获取locationId
,然后我要使用该结果过滤通过国家/地区返回的位置列表。这一切都很好。参数已成功获取。
由于我无法进入的原因,我无法选择使用JOINS。
返回component.ts
文件...
我已经成功注入了服务,并且在组件中有一个方法可以调用服务方法fetchLocations(country)
来尝试获取相关位置...
private getLocations(country) {
return this.myService.fetchLocations(country).subscribe(res => {
this.locations = res;
}
}
从网址中获取了参数之后,我然后在ngOnInit()
内部调用该方法并传入该国家/地区。
this.getLocations(this.country);
但是,这将返回错误...
Backend returned code 200, body was [Object Object]