在mongodb中使用findOne来查找id

时间:2017-11-06 15:43:42

标签: node.js mongodb express vuejs2 mean-stack

我正在制作一个带有MEVN堆栈的tapTracker应用程序,并且有一个包含所有歌曲的页面 我希望当我点击一首歌时,让应用程序只打开这首歌......

在前端==>

所以我从 songs.vue ' {that songs page}'到 viewSong.vue

<v-btn dark class="cyan darken-3" v-on:click="navigateTo({name: 'song', 
 params: {songId: song._id}})"> View </v-btn>

之后在 viewsong.vue 中我使用id param创建一个show函数

<template>
  <h1></h1>
</template>

<script>
import songsServices from '@/services/songsServices'
export default {
  data () {
    return {
      song: null
    }
  },
  async mounted () {
    const songId = this.$store.state.route.params.songId
    this.song = await songsServices.show(songId)
  }
}
</script>

然后我用它做一个api将它发送到

中的后端服务器

songServices.js

show (songId) {
  return Api().get(`songs/${songId}`)
}

在后端&#39;服务器&#39; ==&GT;

我在 router.js

中获取http req
app.get('/songs/:songId', songsController.show)

songsController.js

async show(req,res) {
    try {
      const Song = await Songs.findOne({_id: req.params.songId})
        res.send(song)

    } catch (error) {
      res.status(400).send('error: error when tring to fetch songs!!!')
      console.log(error)
    }
  }

在邮递员中,当我使用此参数获取req时,它会给我错误 问题在哪里?

提示这是github上的项目网址

https://github.com/mohamedAdel01/tapTracker

0 个答案:

没有答案