Javascript 从服务器获取数据时,挂载的钩子(承诺/异步)出错
我是Vue新手,我有一个网页组件(movie song list),它从页面路由参数(通过此.$store.state.route.params.movieId)接收电影id,然后使用以下命令从服务器上的数据库获取实际用户歌曲数据:this.movie=(wait MoviesService.show(movieId)).data,show功能是通过id在db中查找参数,并将内容发送回前端 我的问题是,每当我点击“查看”按钮时,网站都会链接到具有基本框架的特定id页面,但它无法获取电影歌曲列表网页中的内容 控制台中显示的错误为: [Vue warn]:挂载钩子中的错误(承诺/异步):“错误:请求” 失败,在-->中找到状态代码为“500” src/App.vue上的src/components/ViewMovie.vue ViewMovie.vue:Javascript 从服务器获取数据时,挂载的钩子(承诺/异步)出错,javascript,express,vue.js,Javascript,Express,Vue.js,我是Vue新手,我有一个网页组件(movie song list),它从页面路由参数(通过此.$store.state.route.params.movieId)接收电影id,然后使用以下命令从服务器上的数据库获取实际用户歌曲数据:this.movie=(wait MoviesService.show(movieId)).data,show功能是通过id在db中查找参数,并将内容发送回前端 我的问题是,每当我点击“查看”按钮时,网站都会链接到具有基本框架的特定id页面,但它无法获取电影歌曲列表网
<template>
<panel title= "Movies theme song list">
<div class="movie-title">
{{movie.title}}
</div>
<div class="movie-artist">
{{movie.artist}}
</div>
<div class="movie-album">
{{movie.album}}
</div>
</panel>
</template>
<script>
import MoviesService from '@/services/MoviesService'
import Panel from '@/components/Panel'
export default {
async mounted () {
const movieId = this.$store.state.route.params.movieId
this.movie = (await MoviesService.show(movieId)).data
},
data () {
return {
movie: {}
}
},
components: {
Panel
}
}
</script>
MoviesService.js:
import Api from '@/services/Api'
export default {
index () {
return Api().get('movies')
},
show (movieId) {
return Api().get(`movies/${movieId}`)
},
post (movie) {
return Api().post('movies', movie)
}
}
我在数据库中看不到您的实际电影对象,因此我将进行部分假设 findById()是您尝试查找电影的方式。你的身份证号码是1。FindById()需要自动生成的_id字段中的数据。_id更接近于
5d8c369e69ccb034cc31b816
如果您更改:
await Movie.findById(req.params.movieId)
到
如果数据库对象的字母大写,请将此处的id更改为id
你得到了什么?有变化吗
可能值得展示一个包含整个电影数据库条目的原始对象,以查看其中的所有内容,如果我走错了路,可以进一步提供帮助 将find()更改为findOne(),以避免返回数组并导致可能需要的单独调整谢谢,它可以工作!我假设findById()将触发findOne()中间件,这是因为我传递的是一个具有id属性的对象,而不是字符串或ObjectId实例吗?findById(id)只是findOne({u id:id})的一个稍微干净的语法。很抱歉,在从歌曲列表页面获取内容后,我遇到了另一个问题。findOne()在第一个id页中按id获取内容方面效果很好,但以下id页(即id:2)在第一个id页中都获得相同的内容,我想知道该网页是否只接收第一个电影id数据?[错误:我的第一个答案甚至还没有被标记为您需要的。您的图像链接似乎不起作用,因此我看不到您现在收到的错误。
await Movie.findById(req.params.movieId)
await Movie.findOne({ id: { $eq: req.params.movieId })