Angular的HttpClient.get方法匹配精确值?

发布于 2022-09-07 22:05:04 字数 2765 浏览 19 评论 0

正在学习Angular中,关于HttpClient有点不懂的地方.

in-memory-data.service:

const users=[
      {id: 1, url: '/assets/home-carousel/1.bmp', like: false, likecount: 0},
      {id: 2, url: '/assets/home-carousel/2.png', like: false, likecount: 0},
      {id: 3, url: '/assets/home-carousel/3.jpg', like: false, likecount: 0},
      {id: 4, url: '/assets/home-carousel/4.png', like: false, likecount: 0},
      {id: 5, url: '/assets/home-carousel/5.png', like: false, likecount: 0},
      {id: 6, url: '/assets/home-carousel/5.png', like: false, likecount: 0},
      {id: 7, url: '/assets/home-carousel/5.png', like: false, likecount: 0},
      {id: 8, url: '/assets/home-carousel/5.png', like: false, likecount: 0},
      {id: 9, url: '/assets/home-carousel/5.png', like: false, likecount: 0},
     {id: 1, username: 'admin', password: 'admin', email: 'email@email.com', birthday: '19970916', exist: 'boolean', }
     ];
     return {users};

这里面有一条这样的数据.

我想在this.http.get(api/users/?username=admin)的时候才会返回这条数据,但是我现在即使是请求为
this.http.get('api/users/?username=min')的时候依然会返回这条数据.所以我想要的是能不能实现username的精确查找?

在试错的时候又发现了一个问题,如果请求是this.http.get<any[]>('api/users/?username=e')或者其他的啥字符的时候,为什么就算是那些没有username这个属性的json对象也会被返回过来啊,真特么蛋疼啊..
返回值为:

[{"id":1,"url":"/assets/home-carousel/1.bmp","like":false,"likecount":0},{"id":2,"url":"/assets/home-carousel/2.png","like":false,"likecount":0},{"id":3,"url":"/assets/home-carousel/3.jpg","like":false,"likecount":0},{"id":4,"url":"/assets/home-carousel/4.png","like":false,"likecount":0},{"id":5,"url":"/assets/home-carousel/5.png","like":false,"likecount":0},{"id":6,"url":"/assets/home-carousel/5.png","like":false,"likecount":0},{"id":7,"url":"/assets/home-carousel/5.png","like":false,"likecount":0},{"id":8,"url":"/assets/home-carousel/5.png","like":false,"likecount":0},{"id":9,"url":"/assets/home-carousel/5.png","like":false,"likecount":0},{"id":10,"url":"/assets/home-carousel/5.png","like":false,"likecount":0},{"id":11,"url":"/assets/home-carousel/5.png","like":false,"likecount":0},{"id":12,"url":"/assets/home-carousel/5.png","like":false,"likecount":0},{"id":13,"url":"/assets/home-carousel/5.png","like":false,"likecount":0},{"id":1,"username":"admin","password":"admin","email":"email@email.com","birthday":"19970916","exist":"boolean"}]

我也看了官方api文档了,好像没说有这回事,倒是能this.http.get<any[]>('api/users/id'),但是这样的话岂不是要改变数据库的结构了?因为他好像只能按照第一个进行匹配啊?是不是要从后台得到一个username开头的数组才行啊?

还有一个问题就是使用http.get<any[]>(url)的时候是从后台进行处理,访问了后台的/user/?username=xxx&id=xxx那么在后台是不是/user的这个地方接受了请求,然后后面的参数作为请求体啊?
新手小白,希望大佬们能给解答一下!感激不尽!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文