отображать одну запись по идентификатору с помощью vue js и axios - PullRequest
0 голосов
/ 04 марта 2019

У меня есть приложение mongodb express vue js, которое отображает список элементов на карточках, которые являются ссылками на подробный вид каждой записи.Если я наведу курсор мыши на карту, отобразится правильный идентификатор для ссылки, но щелкните любую карту, и она перейдет к первому документу от mongo, и запись не отобразится.Представление извлекает элемент, но всегда первый.

Как отобразить запись идентификатора элемента, по которому щелкнули?

Report.vue

внутренний запрос, который работает в почтальоне:

// Get Simgle Report
router.get('/:id', async (req, res) => {
  const reports = await loadReportsCollection()
  await reports.findOne({_id: new mongodb.ObjectID( req.params.id)})
  res.send(await reports.find({}).limit(1).toArray())
  res.status(200).send()
  }
)

ReportService.js выглядит как

    //Find Single Report
  static getReport(id) {
    return axios.get(`${url}${id}`)
  }

, а файл Report.vue выглядит как

mounted () {
    this.getReport()
  },

  methods: {
    async getReport() {
        try {
          const response = await ReportService.getReport(this.$route.params.id)
          this.report = response.data
        } catch(err) {
          this.err = err.message
        }
      },
  }

большое спасибоза помощь!

1 Ответ

0 голосов
/ 04 марта 2019

Казалось бы, вы пытаетесь получить доступ к параметру в вашем API, не передавая его в своем запросе.Вы просите параметры здесь:

await reports.findOne({_id: new mongodb.ObjectID( req.params.id)})

, но не передали ни одного в вашем запросе.Это должно сделать это:

return axios.get('/:id', {
  params: {
    id: `${id}`
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...