Чтобы устранить вашу ошибку и добиться этого без извлечения всех пользователей из БД, вот как я бы это сделал: service.ts
getAllUsers(): Observable<HttpResponse<User[]>> {
return this.http.get<User[]>('http://localhost:3000/users');
}
getUser(login: string): Observable<HttpResponse<User>> {
return this.http.get<User>(`http://localhost:3000/users/${login}`);
}
, а затем в component.ts
this.loginService.getUser(this.userName).subscribe((response:HttpResponse<User>) => {
console.log(response.body.login);
});
Что касается серверной части, то вот пример с springboot
@GetMapping("/users")
public ResponseEntity<List<User>> getAllUsers() {
// Here : access db and returns all users
return this.userService.getAllUsers();
}
@GetMapping("/users/{login}")
public ResponseEntity<User> getUserFromLogin(@PathVariable String login) {
// Here : access db and find the row related to the expected login
return this.userService.findByLogin(login);
}
Примечание: обратите внимание, что я удалил allusers
из URL-адреса и сопоставления, поскольку на стороне сервера возникла бы проблема как allusers
будет считаться логином