我正在使用vue js,express和mongoDB构建应用程序。我想使用url查询来搜索集合。但我无法从网址获取查询
当我到达此URL ../races?title=Stadions时,客户端将致电服务以获取路线。我认为这是查询字符串丢失的地方。让我告诉你。
这是来自客户端的代码:
async getRaces () {
const response = await RacesService.getRaces()
this.races = response.data.races
},
RaceService被调用
然后在RaceService中发生这种情况:
getRaces () {
return Api().get('races/')
},
在路由文件中调用该路由:
router.get('/', (req, res) => {
...
})
执行req.query时为空。我认为这是因为我调用路线的原因,因为如果在RacesService中执行此操作,它将正常工作:
getRaces () {
return Api().get('races/?title=Stadions')
},
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
我认为您正在使用vue-router。如果是,那么您可以传递this.$route.query
中的查询参数。该属性是一个对象,因此您可能需要一个query-string之类的库来对查询进行字符串化。
示例代码:
async getRaces () {
const response = await RacesService.getRaces(this.$route.query)
this.races = response.data.races
}
//...
import queryString from 'query-string'
getRaces (query) {
return Api().get('races/?' + queryString.stringify(query))
},