मेरे पास एक मोंगोडब एक्सप्रेस वीयू जेएस ऐप है जो कार्ड में वस्तुओं की एक सूची प्रदर्शित करता है जो प्रत्येक रिकॉर्ड के विस्तृत दृश्य के लिंक हैं। अगर मैं कार्ड पर लिंक प्रदर्शित करने के लिए सही आईडी पर होवर करता हूं लेकिन किसी भी कार्ड पर क्लिक करता हूं और यह मोंगो से पहले दस्तावेज़ पर जाता है और रिकॉर्ड प्रदर्शित नहीं होता है। दृश्य एक आइटम को पुनः प्राप्त करता है लेकिन हमेशा पहले वाला।

क्लिक किए गए आइटम की आईडी का रिकॉर्ड कैसे प्रदर्शित करें?

रिपोर्ट.व्यू

बैकएंड अनुरोध जो डाकिया में काम करता है

// 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
        }
      },
  }

मदद के लिए बहुत धन्यवाद!

2
Gosmith 4 मार्च 2019, 00:00

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि आप अपने अनुरोध में एक को पारित किए बिना अपने एपीआई में एक परम तक पहुंचने का प्रयास कर रहे हैं। आप यहाँ परम के लिए पूछते हैं:

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

लेकिन आपके अनुरोध में कोई भी पारित नहीं किया है। यह करना चाहिए:

return axios.get('/:id', {
  params: {
    id: `${id}`
  }
})
1
Andrew1325 4 मार्च 2019, 01:19