如何从URL修复空查询字符串

时间:2019-04-04 21:04:51

标签: express vue.js

我正在使用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')
  },

有人可以帮我解决这个问题吗?

1 个答案:

答案 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))
},