SpringBoot,返回数字的Angular方法



我想从表users中获取用户数量,并使用angular将其显示在前端部分。这是我在后端重新返回用户数量的方法:

用户报告。Java

@Query(value="SELECT COUNT(*) FROM User")
int UsersCount();

用户控制器。Java

@GetMapping("/countUsers")
@PreAuthorize("hasRole('ADMIN')")
public int CountUsers() {


return  UserService.usersCount();

}

问题是我仍然无法检索结果,因为前面的数字总是得到

未定义,以下是我如何在front部分调用我的方法:

UserService.ts

CountUsers() {  
return this.http.get(`${AppConstants.API_URL}`+'countUsers');     }

用户组件

public count(){
this.userService.CountUsers().subscribe(

);

当我试图显示结果时,this.count((返回未定义,而当我试图将返回类型更改为数字时,我不能在服务部分显示,这表明

类型"Observable"不可分配给类型"number">

执行GET请求时,默认的responseType'json'。这意味着无论您的后端返回什么,HttpClient都会尝试将其解析为json

将计数解析为JSON的结果可能是undefined,正如您已经注意到的那样。

尝试提供第二个options参数,并将responseType设置为text

CountUsers(): Observable<any> {  
return this.http.get(`${AppConstants.API_URL}`+'countUsers', { responseType: 'text' });
}

然后,您可以通过订阅由此产生的可观察结果来访问您的计数结果:

public userCount?: number;
ngOnInit(): void {
this.userService.CountUsers().subscribe((count) => {
this.userCount = count;
console.log(count);
});
}

通过查看文档了解更多信息。

相关内容

  • 没有找到相关文章

最新更新